Submit Search
Upload
Jdk9で変更になる(かも知れない)jvmオプションの標準設定
•
Download as PPTX, PDF
•
2 likes
•
1,651 views
K
Kazuyuki Nakamura
Follow
JavaOne 2016 報告会 @ Tokyo で発表した資料
Read less
Read more
Technology
Report
Share
Report
Share
1 of 27
Download now
Recommended
Metaspace
Metaspace
Yasumasa Suenaga
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
ClassLoader Leak Patterns
ClassLoader Leak Patterns
nekop
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
Recommended
Metaspace
Metaspace
Yasumasa Suenaga
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
ClassLoader Leak Patterns
ClassLoader Leak Patterns
nekop
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
ダークネットのはなし #ssmjp
ダークネットのはなし #ssmjp
sonickun
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
LINE Corporation
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
Google Cloud Platform - Japan
Akkaで分散システム入門
Akkaで分散システム入門
Shingo Omura
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
負荷テストを行う際に知っておきたいこと 初心者編
負荷テストを行う際に知っておきたいこと 初心者編
まべ☆てっく運営
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
Apache Spark + Arrow
Apache Spark + Arrow
Takeshi Yamamuro
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Henning Jacobs
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
Takahiro Moteki
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Yoshimura Soichiro
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Yahoo!デベロッパーネットワーク
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
ななめ45°から見たJavaOne
ななめ45°から見たJavaOne
AdvancedTechNight
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
More Related Content
What's hot
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
ダークネットのはなし #ssmjp
ダークネットのはなし #ssmjp
sonickun
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
LINE Corporation
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
Google Cloud Platform - Japan
Akkaで分散システム入門
Akkaで分散システム入門
Shingo Omura
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
負荷テストを行う際に知っておきたいこと 初心者編
負荷テストを行う際に知っておきたいこと 初心者編
まべ☆てっく運営
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
Apache Spark + Arrow
Apache Spark + Arrow
Takeshi Yamamuro
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Henning Jacobs
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
Takahiro Moteki
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Yoshimura Soichiro
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Yahoo!デベロッパーネットワーク
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
What's hot
(20)
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
ダークネットのはなし #ssmjp
ダークネットのはなし #ssmjp
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
Akkaで分散システム入門
Akkaで分散システム入門
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
負荷テストを行う際に知っておきたいこと 初心者編
負荷テストを行う際に知っておきたいこと 初心者編
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
Apache Spark + Arrow
Apache Spark + Arrow
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
Similar to Jdk9で変更になる(かも知れない)jvmオプションの標準設定
ななめ45°から見たJavaOne
ななめ45°から見たJavaOne
AdvancedTechNight
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
Koichi Sakata
Prepare for Java 9 #jjug
Prepare for Java 9 #jjug
Yuji Kubota
Introduction to GraalVM
Introduction to GraalVM
Koichi Sakata
Pentaho ETL@DevLOVE関西
Pentaho ETL@DevLOVE関西
Hirokazu Tokuno
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
つぶLT20121215
つぶLT20121215
遼一 杉浦
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Hiroko Tamagawa
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
JVM! JVM! JVM!
JVM! JVM! JVM!
Masaaki HIROSE
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
kimukou_26 Kimukou
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
20120421中国gtug
20120421中国gtug
Yusuke Sato
Programming camp code reading
Programming camp code reading
Hiro Yoshioka
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
griddb
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
直久 住川
PyCon APAC 2013 Web Secure Coding
PyCon APAC 2013 Web Secure Coding
Gouji Ochiai
Similar to Jdk9で変更になる(かも知れない)jvmオプションの標準設定
(20)
ななめ45°から見たJavaOne
ななめ45°から見たJavaOne
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
Prepare for Java 9 #jjug
Prepare for Java 9 #jjug
Introduction to GraalVM
Introduction to GraalVM
Pentaho ETL@DevLOVE関西
Pentaho ETL@DevLOVE関西
JVMの中身を可視化してみた
JVMの中身を可視化してみた
つぶLT20121215
つぶLT20121215
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
JVM! JVM! JVM!
JVM! JVM! JVM!
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Programming camp 2008, Codereading
Programming camp 2008, Codereading
20120421中国gtug
20120421中国gtug
Programming camp code reading
Programming camp code reading
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
PyCon APAC 2013 Web Secure Coding
PyCon APAC 2013 Web Secure Coding
Jdk9で変更になる(かも知れない)jvmオプションの標準設定
1.
JDK9で変更になる(かも知れない) JVMオプションの標準設定 Javaone 2016 報告会
@ Tokyo 懇親会LT 2016/10/15
2.
name: “中村 和之”, businessDescription:
[ “R&D (since 2016)”, “技術支援” “新人育成 (until 2015)” ], twitterHandle: “@nakm”
3.
本資料の内容は発表者個人の見解であり、 所属する組織の公式見解ではありません また、JDK9の情報についてもEAの情報であるため、 内容は変更になる可能性があります。 スライドは一部修正して公開する予定です。
4.
JavaOneに初参加した感想 • コードが読めれば、大体なんとかなる • 聞くだけなら •
「聞く+日本語変換+メモ」の並列処理は結構辛い • 話すことは別 • @venkat博士のセッションだけは謎体験だった • 食文化は異文化コミュニケーション • 蟹はおいしい(発表者個人の見解です) • スーツを着るといたたまれない気持ちになる • 毎日まとめ書くのは体力が必要(最終日無理)
5.
JDK9が来年でるよ 何が変わるの?
6.
JDK9が来年でるよ 何が変わるの?
7.
つらい
8.
おれたちエンタープライズ • お客様の環境で動いているコードを正常に動かし続けることが重要 • バージョンアップだけでも一騒動 •
基本的にはソースコード改変せずに動かし続けたい • 影響調査範囲の明確化のため • 大体は互換性があるので、問題ないはず • Project JigsawによりReflectionでprivateを呼び出せなくなるかも問題は割愛
9.
守護りたい • 心配なのは明示的に設定していないJVMオプション • 特にJDK9からはG1GCがデフォルトになるので設定値周りの確認をする とはいえ、細かいチューニング以外の目的で 闇雲にJVMオプションを変更することは個人的に推奨しません。 把握することが大事。
10.
調べてみよう
11.
前提 • OS: Windows
10 Pro • Mem: 16GB • JDK8 -version: java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode) • JDK9 -version: java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+138) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+138, mixed mode)
12.
確認方法 java -version -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions 参考:見せてやろうJVMが持つ真のチカラを! JVMのオプションを一覧する方法について。 http://qiita.com/taichi@github/items/7d2bb7d4af7fec8530c3
13.
ArrayAllocatorMallocLimit ConcGCThreads FastTLABRefill G1ConcRefinementThreads G1ConcRefinementThresholdStep G1HeapRegionSize G1RSetRegionEntries G1RSetSparseRegionEntries GCPauseIntervalMillis GCTimeRatio MarkStackSizeMax MarkSweepDeadRatio MaxGCMinorPauseMillis MaxGCPauseMillis MaxHeapFreeRatio MaxNodeLimit MaxRAM MaxVectorSize MinHeapDeltaBytes MinHeapFreeRatio MonitorInUseLists NewSize OldSize ScavengeBeforeFullGC SharedBaseAddress SharedReadOnlySize SharedReadWriteSize StackShadowPages UseG1GC UseMontgomeryMultiplyIntrinsic UseMontgomerySquareIntrinsic UseMulAddIntrinsic UseParallelGC UseParallelOldGC UseSHA UseSHA256Intrinsics UseSquareToLenIntrinsic 設定値が変わっていたJVMオプション(一覧) 37
14.
ArrayAllocatorMallocLimit ConcGCThreads FastTLABRefill G1ConcRefinementThreads G1ConcRefinementThresholdStep G1HeapRegionSize G1RSetRegionEntries G1RSetSparseRegionEntries GCPauseIntervalMillis GCTimeRatio MarkStackSizeMax MarkSweepDeadRatio MaxGCMinorPauseMillis MaxGCPauseMillis MaxHeapFreeRatio MaxNodeLimit MaxRAM MaxVectorSize MinHeapDeltaBytes MinHeapFreeRatio MonitorInUseLists ✔ NewSize OldSize ScavengeBeforeFullGC SharedBaseAddress SharedReadOnlySize SharedReadWriteSize StackShadowPages UseG1GC ✔ UseMontgomeryMultiplyIntrinsic
✔ UseMontgomerySquareIntrinsic ✔ UseMulAddIntrinsic ✔ UseParallelGC UseParallelOldGC UseSHA ✔ UseSHA256Intrinsics ✔ UseSquareToLenIntrinsic ✔ 有効化されたもの(JDK8:FALSE→JDK9:TRUE)✔ 8/37
15.
ArrayAllocatorMallocLimit ConcGCThreads FastTLABRefill ✔ G1ConcRefinementThreads G1ConcRefinementThresholdStep G1HeapRegionSize G1RSetRegionEntries G1RSetSparseRegionEntries GCPauseIntervalMillis GCTimeRatio MarkStackSizeMax MarkSweepDeadRatio MaxGCMinorPauseMillis MaxGCPauseMillis MaxHeapFreeRatio MaxNodeLimit MaxRAM MaxVectorSize MinHeapDeltaBytes MinHeapFreeRatio MonitorInUseLists NewSize OldSize ScavengeBeforeFullGC ✔ SharedBaseAddress SharedReadOnlySize SharedReadWriteSize StackShadowPages UseG1GC UseMontgomeryMultiplyIntrinsic UseMontgomerySquareIntrinsic UseMulAddIntrinsic UseParallelGC
✔ UseParallelOldGC ✔ UseSHA UseSHA256Intrinsics UseSquareToLenIntrinsic 無効化されたもの(JDK8:TRUE→JDK9:FALSE)✔ 4/37
16.
JDK8:TRUE→JDK9:FALSE FastTLABRefill ScavengeBeforeFullGC UseParallelGC UseParallelOldGC JDK8:FALSE→JDK9:TRUE MonitorInUseLists UseG1GC UseMontgomeryMultiplyIntrinsic UseMontgomerySquareIntrinsic UseMulAddIntrinsic UseSHA UseSHA256Intrinsics UseSquareToLenIntrinsic
17.
ArrayAllocatorMallocLimit ✔ ConcGCThreads ✔ FastTLABRefill G1ConcRefinementThreads
✔ G1ConcRefinementThresholdStep ✔ G1HeapRegionSize ✔ G1RSetRegionEntries ✔ G1RSetSparseRegionEntries ✔ GCPauseIntervalMillis ✔ GCTimeRatio MarkStackSizeMax MarkSweepDeadRatio ✔ MaxGCMinorPauseMillis ✔ MaxGCPauseMillis MaxHeapFreeRatio MaxNodeLimit ✔ MaxRAM ✔ MaxVectorSize ✔ MinHeapDeltaBytes ✔ MinHeapFreeRatio ✔ MonitorInUseLists NewSize OldSize ScavengeBeforeFullGC SharedBaseAddress ✔ SharedReadOnlySize SharedReadWriteSize StackShadowPages ✔ UseG1GC UseMontgomeryMultiplyIntrinsic UseMontgomerySquareIntrinsic UseMulAddIntrinsic UseParallelGC UseParallelOldGC UseSHA UseSHA256Intrinsics UseSquareToLenIntrinsic 値が増加したもの(JDK8:VALUE < JDK9:VALUE)✔ 17/37
18.
VARIABLE JDK8 JDK9
RATIO ArrayAllocatorMallocLimit 4,294,967,295 18,446,744,073,709,500,000 429496729700% ConcGCThreads 0 1 G1ConcRefinementThreads 0 4 G1ConcRefinementThresholdStep 0 2 G1HeapRegionSize 0 1,048,576 G1RSetRegionEntries 0 256 G1RSetSparseRegionEntries 0 4 GCPauseIntervalMillis 0 201 MarkSweepDeadRatio 1 5 500% MaxGCMinorPauseMillis 4,294,967,295 18,446,744,073,709,500,000 429496729700% MaxNodeLimit 75,000 80,000 107% MaxRAM 0 137,438,953,472 MaxVectorSize 32 64 200% MinHeapDeltaBytes 524,288 1,048,576 200% MinHeapFreeRatio 0 40 SharedBaseAddress 0 34,359,738,368 StackShadowPages 6 7 117%
19.
ArrayAllocatorMallocLimit ConcGCThreads FastTLABRefill G1ConcRefinementThreads G1ConcRefinementThresholdStep G1HeapRegionSize G1RSetRegionEntries G1RSetSparseRegionEntries GCPauseIntervalMillis GCTimeRatio ✔ MarkStackSizeMax ✔ MarkSweepDeadRatio MaxGCMinorPauseMillis MaxGCPauseMillis
✔ MaxHeapFreeRatio ✔ MaxNodeLimit MaxRAM MaxVectorSize MinHeapDeltaBytes MinHeapFreeRatio MonitorInUseLists NewSize ✔ OldSize ✔ ScavengeBeforeFullGC SharedBaseAddress SharedReadOnlySize ✔ SharedReadWriteSize ✔ StackShadowPages UseG1GC UseMontgomeryMultiplyIntrinsic UseMontgomerySquareIntrinsic UseMulAddIntrinsic UseParallelGC UseParallelOldGC UseSHA UseSHA256Intrinsics UseSquareToLenIntrinsic 値が減少したもの(JDK8:VALUE > JDK9:VALUE)✔ 8/37
20.
VARIABLE JDK8 JDK9
RATIO GCTimeRatio 99 12 12.1% MarkStackSizeMax 536,870,912 16,777,216 3.1% MaxGCPauseMillis 4,294,967,295 200 0.0% MaxHeapFreeRatio 100 70 70.0% NewSize 88,604,672 1,363,144 1.5% OldSize 177,733,632 5,452,592 3.1% SharedReadOnlySize 16,777,216 10,485,760 62.5% SharedReadWriteSize 16,777,216 10,485,760 62.5%
21.
まとめ • G1GCの設定値周りは自動で設定されている • G1GC一旦試してみるには良い状況 •
JDK8リリース以降導入されたDiagnostics系の設定値が有効化されている • で、コレ一つ一つがどういう影響をアプリケーションにもたらすの? • こまけぇことはいいんだよ(すみません、存じ上げません)
22.
参考情報 • compare JVM
options for public • https://docs.google.com/spreadsheets/d/1W2enGLRz0t7PQ75nZn2QGZb- dyOrsjNflMNQZUyc5Tg/edit#gid=583591202 • 見せてやろうJVMが持つ真のチカラを! JVMのオプションを一覧する方法について。 • http://qiita.com/taichi@github/items/7d2bb7d4af7fec8530c3
23.
以上
24.
ArrayAllocatorMallocLimit✔ ConcGCThreads ✔ FastTLABRefill G1ConcRefinementThreads ✔ G1ConcRefinementThresholdStep
✔ G1HeapRegionSize ✔ G1RSetRegionEntries G1RSetSparseRegionEntries GCPauseIntervalMillis GCTimeRatio MarkStackSizeMax ✔ MarkSweepDeadRatio MaxGCMinorPauseMillis MaxGCPauseMillis MaxHeapFreeRatio MaxNodeLimit MaxRAM MaxVectorSize MinHeapDeltaBytes ✔ MinHeapFreeRatio MonitorInUseLists NewSize ✔ OldSize ✔ ScavengeBeforeFullGC SharedBaseAddress ✔ SharedReadOnlySize ✔ SharedReadWriteSize ✔ StackShadowPages UseG1GC UseMontgomeryMultiplyIntrinsic UseMontgomerySquareIntrinsic UseMulAddIntrinsic UseParallelGC UseParallelOldGC UseSHA UseSHA256Intrinsics UseSquareToLenIntrinsic 型が変わったもの(uintx,intx→size_t) ✔ 12/37
25.
ArrayAllocatorMallocLimit ConcGCThreads ✔ FastTLABRefill G1ConcRefinementThreads ✔ G1ConcRefinementThresholdStep G1HeapRegionSize
✔ G1RSetRegionEntries G1RSetSparseRegionEntries GCPauseIntervalMillis GCTimeRatio MarkStackSizeMax MarkSweepDeadRatio MaxGCMinorPauseMillis MaxGCPauseMillis MaxHeapFreeRatio MaxNodeLimit MaxRAM MaxVectorSize MinHeapDeltaBytes ✔ MinHeapFreeRatio MonitorInUseLists NewSize ✔ OldSize ✔ ScavengeBeforeFullGC SharedBaseAddress SharedReadOnlySize SharedReadWriteSize StackShadowPages UseG1GC ✔ UseMontgomeryMultiplyIntrinsic UseMontgomerySquareIntrinsic UseMulAddIntrinsic UseParallelGC ✔ UseParallelOldGC UseSHA UseSHA256Intrinsics UseSquareToLenIntrinsic 実行時に自動(ergonomic)設定されているもの✔ 8/37
26.
JDK9でドロップされる(っぽい)JVMオプション • 次項
27.
AdaptiveSizePausePolicy G1TraceConcRefinement PrintGCDateStamps
TraceDynamicGCThreads AdjustConcurrency G1TraceEagerReclaimHumongousObjects PrintGCID TraceGCTaskThread BackEdgeThreshold G1TraceStringSymbolTableScrubbing PrintGCTaskTimeStamps TraceGen0Time C1PatchInvokeDynamic G1UseConcMarkReferenceProcessing PrintGCTimeStamps TraceGen1Time CMSCompactWhenClearAllSoftRefs GCLogFileSize PrintHeapAtGC TraceLoaderConstraints CMSDumpAtPromotionFailure JNIDetachReleasesMonitors PrintHeapAtGCExtended TraceMetadataHumongousAllocation CMSFullGCsBeforeCompaction LazyBootClassLoader PrintJNIGCStalls TraceMonitorInflation CMSIncrementalDutyCycle LoopLimitCheck PrintOldPLAB TraceParallelOldGCTasks CMSIncrementalDutyCycleMin MallocVerifyInterval PrintOopAddress TraceRedefineClasses CMSIncrementalMode MallocVerifyStart PrintParallelOldGCPhaseTimes TraceSafepointCleanupTime CMSIncrementalOffset NmethodSweepCheckInterval PrintPLAB TraceSharedLookupCache CMSIncrementalPacing NmethodSweepFraction PrintPromotionFailure UnrollLimitCheck CMSParPromoteBlocksToClaim NumberOfGCLogFiles PrintReferenceGC Use486InstrsOnly CMSPrintEdenSurvivorChunks ParallelGCRetainPLAB PrintStringDeduplicationStatistics UseAltSigs CodeCacheMinimumFreeSpace ParallelGCVerbose PrintTenuringDistribution UseBoundThreads CollectGen0First PreInflateSpin PrintTLAB UseCMSCollectionPassing CreateMinidumpOnCrash PrintAdaptiveSizePolicy RangeLimitCheck UseCMSCompactAtFullCollection DefaultMaxRAMFraction PrintClassHistogramAfterFullGC ReadPrefetchInstr UseCompilerSafepoints DefaultThreadPriority PrintClassHistogramBeforeFullGC ReflectionWrapResolutionErrors UseFastAccessorMethods EnableInvokeDynamic PrintCMSInitiationStatistics SafepointPollOffset UseFastEmptyMethods EnableSharedLookupCache PrintCMSStatistics StarvationMonitorInterval UseGCLogFileRotation FenceInstruction PrintCompressedOopsMode ThreadSafetyMargin UseMemSetInBOT G1LogLevel PrintDTraceDOF TraceBiasedLocking UseOldInlining G1PrintHeapRegions PrintFLSCensus TraceClassLoading UseVMInterruptibleIO G1PrintRegionLivenessInfo PrintFLSStatistics TraceClassLoadingPreorder VerboseVerification G1SummarizeConcMark PrintGCApplicationConcurrentTime TraceClassPaths VerifySilently G1SummarizeRSetStats PrintGCApplicationStoppedTime TraceClassResolution WorkAroundNPTLTimedWaitHang PrintGCCause TraceClassUnloading
Download now