SlideShare a Scribd company logo
1 of 17
Download to read offline
IBM Corporation 2019 All Rights Reserved.
OpenJ9 + OpenJDK
⽇本アイ・ビー・エム株式会社
クラウド・ソフトウェア事業部
⽥中 孝清
2019年8⽉27⽇
IBM Corporation 2019. All Rights Reserved.
#jjug
IBM J9 VM
• モバイル環境からIntelサーバー,POWERサーバーから⼤型汎⽤機まで,
様々な環境で使⽤できるJVM
• IBMのソフトウェア製品やサーバー製品に同梱されて提供されていた
• HotSpot VMと全く同じJavaプログラムが同じように動きます
• HotSpot VMの「-X」系オプションの⼀部や
「-XX」系のオプションは使えない
• GCなどは独⾃実装
IBM Corporation 2019. All Rights Reserved.
#jjug
Open J9
• 実⾏環境のCore部分をEclipse OMRとして公開
• メモリプールやスレッド管理などの機能を提供
• IBMでは,COBOLやPL/Iの実⾏環境の実装にも利⽤
• OMR上に実装されたJ9 VMをOSSとして公開
• EPLとAPLのデュアルライセンス
• Eclipse Public License 2.0
• Apatch Public License 2.0
https://github.com/eclipse/openj9
IBM Corporation 2019. All Rights Reserved.
#jjug
J9 VM / OpenJ9の特徴
• ⾼いパフォーマンス
• 多彩な問題判別機能
• Java Dump︓問題発⽣時に情報をテキスト形式で出⼒
• Dumpエージェント︓ダンプ出⼒を細かく制御
• 「特定のExceptionがでたらスレッドダンプを出⼒」
• 「OutOfMemoryErrorがでたら外部コマンドを実⾏」等
• 先進的な機能を率先して取り⼊れ
• 2006年︓クラス共有(JVM間でロードしたクラス情報を共有)
• 2007年︓参照圧縮(64bit VMで参照を32bitに圧縮)
• 2011年︓balanced GC(G1GC類似の巨⼤ヒープ⽤GC)
• 2013年︓Metronome GC(Realtime Java)を標準搭載
• Coming Soon︓JIT as a Service
IBM Corporation 2019. All Rights Reserved.
#jjug
⾼いパフォーマンス性能
• より短い起動時間
• 起動後も安定して低いメモリフットプリントを維持
• より短い時間でピーク性能に到達
5
https://www.eclipse.org/openj9/oj9_performance.html
IBM Corporation 2019. All Rights Reserved.
#jjug
Java Dump(Javacore)
3XMTHREADINFO "Default Executor-thread-592" J9VMThread:0x00000000027E9500, j9thread_t:0x00007FBB98034EA8, java/lang/Thread:0x0000000
3XMJAVALTHREAD (java/lang/Thread getId:0x276, isDaemon:true)
3XMTHREADINFO1 (native thread ID:0x2F1, native priority:0x5, native policy:UNKNOWN, vmstate:CW, vm thread flags:0x00000101)
3XMTHREADINFO2 (native stack address range from:0x00007FBC0A140000, to:0x00007FBC0A181000, size:0x41000)
3XMCPUTIME CPU usage total: 0.023360089 secs, current category="Application"
3XMTHREADBLOCK Waiting on: com/ibm/ws/threading/internal/BoundedBuffer$GetQueueLock@0x00000000F5784B60 Owned by: <unowned>
3XMHEAPALLOC Heap bytes allocated since last GC cycle=4096 (0x1000)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at java/lang/Object.wait(Native Method)
4XESTACKTRACE at java/lang/Object.wait(Bytecode PC:3(Compiled Code))
4XESTACKTRACE at com/ibm/ws/threading/internal/BoundedBuffer.waitGet_(BoundedBuffer.java:176(Compiled Code))
5XESTACKTRACE (entered lock: com/ibm/ws/threading/internal/BoundedBuffer$GetQueueLock@0x00000000F5784B60, entry count:
4XESTACKTRACE at com/ibm/ws/threading/internal/BoundedBuffer.take(BoundedBuffer.java:624(Compiled Code))
4XESTACKTRACE at java/util/concurrent/ThreadPoolExecutor.getTask(Bytecode PC:151(Compiled Code))
4XESTACKTRACE at java/util/concurrent/ThreadPoolExecutor.runWorker(Bytecode PC:26(Compiled Code))
4XESTACKTRACE at java/util/concurrent/ThreadPoolExecutor$Worker.run(Bytecode PC:5)
4XESTACKTRACE at java/lang/Thread.run(Bytecode PC:13)
3XMTHREADINFO3 Native callstack:
4XENATIVESTACK (0x00007FBC0F9A6992 [libj9prt28.so+0x2f992])
4XENATIVESTACK (0x00007FBC0F9B5DF5 [libj9prt28.so+0x3edf5])
4XENATIVESTACK (0x00007FBC0F9A650C [libj9prt28.so+0x2f50c])
4XENATIVESTACK (0x00007FBC0F9A660E [libj9prt28.so+0x2f60e])
4XENATIVESTACK (0x00007FBC0F9B5DF5 [libj9prt28.so+0x3edf5])
4XENATIVESTACK (0x00007FBC0F9A60EF [libj9prt28.so+0x2f0ef])
4XENATIVESTACK (0x00007FBC0F9A027E [libj9prt28.so+0x2927e])
4XENATIVESTACK (0x00007FBC16013340 [libpthread.so.0+0x10340])
4XENATIVESTACK pthread_cond_wait+0xc2 (0x00007FBC1600F412 [libpthread.so.0+0xc412])
4XENATIVESTACK (0x00007FBC0FDF333D [libj9thr28.so+0x733d])
4XENATIVESTACK (0x00007FBC1427F84A [libj9vm28.so+0xb184a])
4XENATIVESTACK (0x00007FBC1421AC6F [libj9vm28.so+0x4cc6f])
4XENATIVESTACK (0x00007FBBEB5010E1 [<unknown>+0x0])
スレッドダンプや…
IBM Corporation 2019. All Rights Reserved.
#jjug
Java Dump(Javacore)
0SECTION ENVINFO subcomponent dump routine
NULL =================================
1CIJAVAVERSION JRE 1.8.0 Linux amd64-64
1CIVMVERSION 20180626_390413
1CIJ9VMVERSION 5cdc604
1CIJITVERSION tr.open_20180619_091956_5cdc604
1CIOMRVERSION a24bc01_CMPRSS
1CIIBMVERSION 21870d6
1CIJITMODES JIT enabled, AOT enabled, FSD disabled, HCR enabled
1CIRUNNINGAS Running as a standalone JVM
1CIVMIDLESTATE VM Idle State: ACTIVE
1CISTARTTIME JVM start time: 2018/07/29 at 01:05:59:389
1CISTARTNANO JVM start nanotime: 44794001166687
1CIPROCESSID Process ID: 311 (0x137)
1CICMDLINE java -Xtrace:trigger=Method{*.*main*,javadump,,1,1} -
version
1CIJAVAHOMEDIR Java Home Dir: /opt/ibm/java/jre
1CIJAVADLLDIR Java DLL Dir: /opt/ibm/java/jre/bin
環境情報や…
• 起動パラメーター
• OSの情報
• 動的ライブラリのロード状況とメモリマップ
• ヒープの使⽤状況・メモリマップ・GCの履歴
• モニター(synchronized排他制御)
• クラスローダーとロードクラス
などなどがテキスト形式で記録
IBM Corporation 2019. All Rights Reserved.
#jjug
ダンプ・エージェント(-Xdump)
• -Xdump:java:events=catch,filter=ExceptionClass#CatchingClass.someOpe
• CatchingClassのsomeOpeメソッドで
ExceptionClassがcatchされたときにJava Dumpを⽣成
• -Xdump:java:events=slow,filter=#300ms
• 300ms以上,JVMが制御を取得できなかったときに
Java Dumpを⽣成
• -Xdump:stack:events=allocation,filter=#5m
• 5MB以上のオブジェクトが⽣成されたときに
標準エラー出⼒にスタックトレースを出⼒
• -Xdump:tool:events=systhrow,filter=java/lang/OutOfMemoryError,exec=kill -9 %pid
• OutOfMemoryErrorが発⽣したときに
killコマンドを実⾏して⾃分⾃⾝を強制終了
8
https://www.eclipse.org/openj9/docs/xdump/
IBM Corporation 2019. All Rights Reserved.
#jjug
JIT as a Service
年内にMasterにマージすることを⽬標に開発中
• JITコンパイルをサーバープロセスに委譲
• 各JVMのメモリ・フットプリントの削減
• コンパイル結果の共有
9
IBM Corporation 2019. All Rights Reserved.
#jjug
OpenJDK+Open J9
• JVMはOpen J9/Eclipse OMR実装
• クラスライブラリ・ツールはOpenJDKのものを使⽤
• Open JDK部分はクラスパス例外つきGPL V2
• Applet Plug-inやJava Web Start,JavaFXは含まれない
• OSSなので,誰でも無償で利⽤可能
Open JDK
Java Class Library
HotSpot VM Eclipse
OMR
Open JDK
Java Class Library
OpenJ9
OMR
IBM Corporation 2019. All Rights Reserved.
#jjug
提供されているプラットフォーム
• Linux x64
• Linux ppc64le / s390x
• AIX ppc64
• Windows x64 (Java 8のみx32も提供)
• macOS x64
• Docker (x64 / ppc64le / s390x)
IBM Corporation 2019. All Rights Reserved.
#jjug
OpenJDK+Open J9の⼊⼿⽅法(1)
AdoptOpenJDK: https://adoptopenjdk.net
以下のバージョンの
OpenJ9+OpenJDK実⾏環境が
ダウンロード可能
• Java 8 (LTS)
• Java 9
• Java 10
• Java 11 (LTS)
• Java 12
IBM Corporation 2019. All Rights Reserved.
#jjug
OpenJDK+Open J9の⼊⼿⽅法(2)
Docker Hub: https://hub.docker.com/u/adoptopenjdk/
• amd64, ppc64le, s390xの
アーキテクチャーをサポート
• 現在はJava 8/9/10/11/12を提供
• 以下のようなコマンドで取得可能
• $ docker pull adoptopenjdk/openjdk8-openj9
13
IBM Corporation 2019. All Rights Reserved.
#jjug
サポートも提供
• IBM Runtime for Business
• AdoptOpenJDKで提供されるOpenJ9に障害サポートを提供
• 年額ライセンス
¥32,900 /virtual processer core
• 実環境ではCPUのCore数
• 仮想化環境では割り当てたCore数
• 障害サポート
• 重要度1対応は24時間・365⽇サポート(⽇本語)
• 製品障害に対する調査・ダンプの解析など
• 新規障害に対する個別Fixの提供
• パッチはAdoptOpenJDK経由で提供
IBM Corporation 2019. All Rights Reserved.
#jjug
⼀部のIBMのSW製品で利⽤する場合も
追加料⾦なしでサポートを提供
• WebSphere Application Server Liberty
• IBM Cloud Pak for Applications
15
コンテナ化されたIBMソフトウェア
セキュリティ準拠、運⽤コア・サービスと事前統合された
IBMミドルウェアおよび
オープンソース・コンポーネント含めたパッケージ
コンテナプラットフォーム
Kubernetesベースのポータブルな基盤
運⽤コアサービス (コンテナ向け共通管理基盤)
ロギング、モニタリング、利⽤量計測、セキュリティ
アイデンティティ管理、イメージ・レジストリを統合
IBM Cloud Paks
(IBMの提供するコンテナソリューション)
IBM Corporation 2019. All Rights Reserved.
#jjug
まとめ
• IBMは,引き続き独⾃のJVMを提供し続けます
• IBMのJavaはOSSとなりました
• IBMの製品をご利⽤いただいてない個⼈のかた・企業も
商⽤・⾮商⽤をとわず⾃由にご利⽤いただけます
• 有償でサポートを提供しています
• IBMの製品のライセンスでもサポートが提供されます
16
IBM Corporation 2019. All Rights Reserved.
#jjug
Open Liberty︓ アプリケーションサーバーもOSSで

More Related Content

What's hot

マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介がっつりMongoDB事例紹介
がっつりMongoDB事例紹介Tetsutaro Watanabe
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)Yoshiro Tokumasu
 
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...Yahoo!デベロッパーネットワーク
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについてオープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM JavaについてTakakiyo Tanaka
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜Yoshiki Nakagawa
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることShingo Fukui
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Masayuki Ozawa
 
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)Masatoshi Tada
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門Masaya Dake
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐkwatch
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 

What's hot (20)

マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
 
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
Are Design Patterns Dead?
Are Design Patterns Dead?Are Design Patterns Dead?
Are Design Patterns Dead?
 
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについてオープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
 
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 

Similar to JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」

HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewYuji Kubota
 
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57Takakiyo Tanaka
 
地に足がついたクラウドのお話
地に足がついたクラウドのお話地に足がついたクラウドのお話
地に足がついたクラウドのお話Toshiaki Baba
 
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageIntroduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageKoichi Sakata
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)NTT DATA Technology & Innovation
 
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #EShuji Watanabe
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)NTT DATA Technology & Innovation
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~Shinji Takao
 
IBM Cloud Community Summit JIMUC 活動のご紹介
IBM Cloud Community Summit JIMUC 活動のご紹介IBM Cloud Community Summit JIMUC 活動のご紹介
IBM Cloud Community Summit JIMUC 活動のご紹介kazuki masuda
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM LoggingYuji Kubota
 
Kernel vm#9 powerkvm-dist-20131208
Kernel vm#9 powerkvm-dist-20131208Kernel vm#9 powerkvm-dist-20131208
Kernel vm#9 powerkvm-dist-20131208Manabu Ori
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)NTT DATA Technology & Innovation
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本terada
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVMKoichi Sakata
 
IBMビジネスパートナー合同フェア2019 『Veeamで簡単にクラウドへのバックアップ、リス トアことはじめ』
IBMビジネスパートナー合同フェア2019 『Veeamで簡単にクラウドへのバックアップ、リス トアことはじめ』IBMビジネスパートナー合同フェア2019 『Veeamで簡単にクラウドへのバックアップ、リス トアことはじめ』
IBMビジネスパートナー合同フェア2019 『Veeamで簡単にクラウドへのバックアップ、リス トアことはじめ』株式会社クライム
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Koichi Sakata
 
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...Insight Technology, Inc.
 
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]David Buck
 

Similar to JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」 (20)

HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
 
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
 
Let's play with Goldfish
Let's play with GoldfishLet's play with Goldfish
Let's play with Goldfish
 
地に足がついたクラウドのお話
地に足がついたクラウドのお話地に足がついたクラウドのお話
地に足がついたクラウドのお話
 
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageIntroduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
 
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
 
IBM Cloud Community Summit JIMUC 活動のご紹介
IBM Cloud Community Summit JIMUC 活動のご紹介IBM Cloud Community Summit JIMUC 活動のご紹介
IBM Cloud Community Summit JIMUC 活動のご紹介
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
Kernel vm#9 powerkvm-dist-20131208
Kernel vm#9 powerkvm-dist-20131208Kernel vm#9 powerkvm-dist-20131208
Kernel vm#9 powerkvm-dist-20131208
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本
 
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
 
IBMビジネスパートナー合同フェア2019 『Veeamで簡単にクラウドへのバックアップ、リス トアことはじめ』
IBMビジネスパートナー合同フェア2019 『Veeamで簡単にクラウドへのバックアップ、リス トアことはじめ』IBMビジネスパートナー合同フェア2019 『Veeamで簡単にクラウドへのバックアップ、リス トアことはじめ』
IBMビジネスパートナー合同フェア2019 『Veeamで簡単にクラウドへのバックアップ、リス トアことはじめ』
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
 
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
 
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
 

More from Takakiyo Tanaka

Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyTakakiyo Tanaka
 
MicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open LibertyMicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open LibertyTakakiyo Tanaka
 
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築Takakiyo Tanaka
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyTakakiyo Tanaka
 
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?Takakiyo Tanaka
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Takakiyo Tanaka
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-Takakiyo Tanaka
 
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4Takakiyo Tanaka
 
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...Takakiyo Tanaka
 
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発Takakiyo Tanaka
 
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21Takakiyo Tanaka
 
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 Takakiyo Tanaka
 
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51Takakiyo Tanaka
 
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Takakiyo Tanaka
 
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-Takakiyo Tanaka
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Takakiyo Tanaka
 

More from Takakiyo Tanaka (17)

Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere Liberty
 
OutOfMemoryErrorとは
OutOfMemoryErrorとは OutOfMemoryErrorとは
OutOfMemoryErrorとは
 
MicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open LibertyMicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open Liberty
 
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
 
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
 
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
 
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
 
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発
 
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
 
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
 
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
 
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
 
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界
 

JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」

  • 1. IBM Corporation 2019 All Rights Reserved. OpenJ9 + OpenJDK ⽇本アイ・ビー・エム株式会社 クラウド・ソフトウェア事業部 ⽥中 孝清 2019年8⽉27⽇
  • 2. IBM Corporation 2019. All Rights Reserved. #jjug IBM J9 VM • モバイル環境からIntelサーバー,POWERサーバーから⼤型汎⽤機まで, 様々な環境で使⽤できるJVM • IBMのソフトウェア製品やサーバー製品に同梱されて提供されていた • HotSpot VMと全く同じJavaプログラムが同じように動きます • HotSpot VMの「-X」系オプションの⼀部や 「-XX」系のオプションは使えない • GCなどは独⾃実装
  • 3. IBM Corporation 2019. All Rights Reserved. #jjug Open J9 • 実⾏環境のCore部分をEclipse OMRとして公開 • メモリプールやスレッド管理などの機能を提供 • IBMでは,COBOLやPL/Iの実⾏環境の実装にも利⽤ • OMR上に実装されたJ9 VMをOSSとして公開 • EPLとAPLのデュアルライセンス • Eclipse Public License 2.0 • Apatch Public License 2.0 https://github.com/eclipse/openj9
  • 4. IBM Corporation 2019. All Rights Reserved. #jjug J9 VM / OpenJ9の特徴 • ⾼いパフォーマンス • 多彩な問題判別機能 • Java Dump︓問題発⽣時に情報をテキスト形式で出⼒ • Dumpエージェント︓ダンプ出⼒を細かく制御 • 「特定のExceptionがでたらスレッドダンプを出⼒」 • 「OutOfMemoryErrorがでたら外部コマンドを実⾏」等 • 先進的な機能を率先して取り⼊れ • 2006年︓クラス共有(JVM間でロードしたクラス情報を共有) • 2007年︓参照圧縮(64bit VMで参照を32bitに圧縮) • 2011年︓balanced GC(G1GC類似の巨⼤ヒープ⽤GC) • 2013年︓Metronome GC(Realtime Java)を標準搭載 • Coming Soon︓JIT as a Service
  • 5. IBM Corporation 2019. All Rights Reserved. #jjug ⾼いパフォーマンス性能 • より短い起動時間 • 起動後も安定して低いメモリフットプリントを維持 • より短い時間でピーク性能に到達 5 https://www.eclipse.org/openj9/oj9_performance.html
  • 6. IBM Corporation 2019. All Rights Reserved. #jjug Java Dump(Javacore) 3XMTHREADINFO "Default Executor-thread-592" J9VMThread:0x00000000027E9500, j9thread_t:0x00007FBB98034EA8, java/lang/Thread:0x0000000 3XMJAVALTHREAD (java/lang/Thread getId:0x276, isDaemon:true) 3XMTHREADINFO1 (native thread ID:0x2F1, native priority:0x5, native policy:UNKNOWN, vmstate:CW, vm thread flags:0x00000101) 3XMTHREADINFO2 (native stack address range from:0x00007FBC0A140000, to:0x00007FBC0A181000, size:0x41000) 3XMCPUTIME CPU usage total: 0.023360089 secs, current category="Application" 3XMTHREADBLOCK Waiting on: com/ibm/ws/threading/internal/BoundedBuffer$GetQueueLock@0x00000000F5784B60 Owned by: <unowned> 3XMHEAPALLOC Heap bytes allocated since last GC cycle=4096 (0x1000) 3XMTHREADINFO3 Java callstack: 4XESTACKTRACE at java/lang/Object.wait(Native Method) 4XESTACKTRACE at java/lang/Object.wait(Bytecode PC:3(Compiled Code)) 4XESTACKTRACE at com/ibm/ws/threading/internal/BoundedBuffer.waitGet_(BoundedBuffer.java:176(Compiled Code)) 5XESTACKTRACE (entered lock: com/ibm/ws/threading/internal/BoundedBuffer$GetQueueLock@0x00000000F5784B60, entry count: 4XESTACKTRACE at com/ibm/ws/threading/internal/BoundedBuffer.take(BoundedBuffer.java:624(Compiled Code)) 4XESTACKTRACE at java/util/concurrent/ThreadPoolExecutor.getTask(Bytecode PC:151(Compiled Code)) 4XESTACKTRACE at java/util/concurrent/ThreadPoolExecutor.runWorker(Bytecode PC:26(Compiled Code)) 4XESTACKTRACE at java/util/concurrent/ThreadPoolExecutor$Worker.run(Bytecode PC:5) 4XESTACKTRACE at java/lang/Thread.run(Bytecode PC:13) 3XMTHREADINFO3 Native callstack: 4XENATIVESTACK (0x00007FBC0F9A6992 [libj9prt28.so+0x2f992]) 4XENATIVESTACK (0x00007FBC0F9B5DF5 [libj9prt28.so+0x3edf5]) 4XENATIVESTACK (0x00007FBC0F9A650C [libj9prt28.so+0x2f50c]) 4XENATIVESTACK (0x00007FBC0F9A660E [libj9prt28.so+0x2f60e]) 4XENATIVESTACK (0x00007FBC0F9B5DF5 [libj9prt28.so+0x3edf5]) 4XENATIVESTACK (0x00007FBC0F9A60EF [libj9prt28.so+0x2f0ef]) 4XENATIVESTACK (0x00007FBC0F9A027E [libj9prt28.so+0x2927e]) 4XENATIVESTACK (0x00007FBC16013340 [libpthread.so.0+0x10340]) 4XENATIVESTACK pthread_cond_wait+0xc2 (0x00007FBC1600F412 [libpthread.so.0+0xc412]) 4XENATIVESTACK (0x00007FBC0FDF333D [libj9thr28.so+0x733d]) 4XENATIVESTACK (0x00007FBC1427F84A [libj9vm28.so+0xb184a]) 4XENATIVESTACK (0x00007FBC1421AC6F [libj9vm28.so+0x4cc6f]) 4XENATIVESTACK (0x00007FBBEB5010E1 [<unknown>+0x0]) スレッドダンプや…
  • 7. IBM Corporation 2019. All Rights Reserved. #jjug Java Dump(Javacore) 0SECTION ENVINFO subcomponent dump routine NULL ================================= 1CIJAVAVERSION JRE 1.8.0 Linux amd64-64 1CIVMVERSION 20180626_390413 1CIJ9VMVERSION 5cdc604 1CIJITVERSION tr.open_20180619_091956_5cdc604 1CIOMRVERSION a24bc01_CMPRSS 1CIIBMVERSION 21870d6 1CIJITMODES JIT enabled, AOT enabled, FSD disabled, HCR enabled 1CIRUNNINGAS Running as a standalone JVM 1CIVMIDLESTATE VM Idle State: ACTIVE 1CISTARTTIME JVM start time: 2018/07/29 at 01:05:59:389 1CISTARTNANO JVM start nanotime: 44794001166687 1CIPROCESSID Process ID: 311 (0x137) 1CICMDLINE java -Xtrace:trigger=Method{*.*main*,javadump,,1,1} - version 1CIJAVAHOMEDIR Java Home Dir: /opt/ibm/java/jre 1CIJAVADLLDIR Java DLL Dir: /opt/ibm/java/jre/bin 環境情報や… • 起動パラメーター • OSの情報 • 動的ライブラリのロード状況とメモリマップ • ヒープの使⽤状況・メモリマップ・GCの履歴 • モニター(synchronized排他制御) • クラスローダーとロードクラス などなどがテキスト形式で記録
  • 8. IBM Corporation 2019. All Rights Reserved. #jjug ダンプ・エージェント(-Xdump) • -Xdump:java:events=catch,filter=ExceptionClass#CatchingClass.someOpe • CatchingClassのsomeOpeメソッドで ExceptionClassがcatchされたときにJava Dumpを⽣成 • -Xdump:java:events=slow,filter=#300ms • 300ms以上,JVMが制御を取得できなかったときに Java Dumpを⽣成 • -Xdump:stack:events=allocation,filter=#5m • 5MB以上のオブジェクトが⽣成されたときに 標準エラー出⼒にスタックトレースを出⼒ • -Xdump:tool:events=systhrow,filter=java/lang/OutOfMemoryError,exec=kill -9 %pid • OutOfMemoryErrorが発⽣したときに killコマンドを実⾏して⾃分⾃⾝を強制終了 8 https://www.eclipse.org/openj9/docs/xdump/
  • 9. IBM Corporation 2019. All Rights Reserved. #jjug JIT as a Service 年内にMasterにマージすることを⽬標に開発中 • JITコンパイルをサーバープロセスに委譲 • 各JVMのメモリ・フットプリントの削減 • コンパイル結果の共有 9
  • 10. IBM Corporation 2019. All Rights Reserved. #jjug OpenJDK+Open J9 • JVMはOpen J9/Eclipse OMR実装 • クラスライブラリ・ツールはOpenJDKのものを使⽤ • Open JDK部分はクラスパス例外つきGPL V2 • Applet Plug-inやJava Web Start,JavaFXは含まれない • OSSなので,誰でも無償で利⽤可能 Open JDK Java Class Library HotSpot VM Eclipse OMR Open JDK Java Class Library OpenJ9 OMR
  • 11. IBM Corporation 2019. All Rights Reserved. #jjug 提供されているプラットフォーム • Linux x64 • Linux ppc64le / s390x • AIX ppc64 • Windows x64 (Java 8のみx32も提供) • macOS x64 • Docker (x64 / ppc64le / s390x)
  • 12. IBM Corporation 2019. All Rights Reserved. #jjug OpenJDK+Open J9の⼊⼿⽅法(1) AdoptOpenJDK: https://adoptopenjdk.net 以下のバージョンの OpenJ9+OpenJDK実⾏環境が ダウンロード可能 • Java 8 (LTS) • Java 9 • Java 10 • Java 11 (LTS) • Java 12
  • 13. IBM Corporation 2019. All Rights Reserved. #jjug OpenJDK+Open J9の⼊⼿⽅法(2) Docker Hub: https://hub.docker.com/u/adoptopenjdk/ • amd64, ppc64le, s390xの アーキテクチャーをサポート • 現在はJava 8/9/10/11/12を提供 • 以下のようなコマンドで取得可能 • $ docker pull adoptopenjdk/openjdk8-openj9 13
  • 14. IBM Corporation 2019. All Rights Reserved. #jjug サポートも提供 • IBM Runtime for Business • AdoptOpenJDKで提供されるOpenJ9に障害サポートを提供 • 年額ライセンス ¥32,900 /virtual processer core • 実環境ではCPUのCore数 • 仮想化環境では割り当てたCore数 • 障害サポート • 重要度1対応は24時間・365⽇サポート(⽇本語) • 製品障害に対する調査・ダンプの解析など • 新規障害に対する個別Fixの提供 • パッチはAdoptOpenJDK経由で提供
  • 15. IBM Corporation 2019. All Rights Reserved. #jjug ⼀部のIBMのSW製品で利⽤する場合も 追加料⾦なしでサポートを提供 • WebSphere Application Server Liberty • IBM Cloud Pak for Applications 15 コンテナ化されたIBMソフトウェア セキュリティ準拠、運⽤コア・サービスと事前統合された IBMミドルウェアおよび オープンソース・コンポーネント含めたパッケージ コンテナプラットフォーム Kubernetesベースのポータブルな基盤 運⽤コアサービス (コンテナ向け共通管理基盤) ロギング、モニタリング、利⽤量計測、セキュリティ アイデンティティ管理、イメージ・レジストリを統合 IBM Cloud Paks (IBMの提供するコンテナソリューション)
  • 16. IBM Corporation 2019. All Rights Reserved. #jjug まとめ • IBMは,引き続き独⾃のJVMを提供し続けます • IBMのJavaはOSSとなりました • IBMの製品をご利⽤いただいてない個⼈のかた・企業も 商⽤・⾮商⽤をとわず⾃由にご利⽤いただけます • 有償でサポートを提供しています • IBMの製品のライセンスでもサポートが提供されます 16
  • 17. IBM Corporation 2019. All Rights Reserved. #jjug Open Liberty︓ アプリケーションサーバーもOSSで