Submit Search
Upload
Unified JVM Logging
•
17 likes
•
12,985 views
Yuji Kubota
Follow
This slide introduces about Unified JVM Logging.
Read less
Read more
Technology
Report
Share
Report
Share
1 of 77
Download now
Download to read offline
Recommended
Metaspace
Metaspace
Yasumasa Suenaga
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
Recommended
Metaspace
Metaspace
Yasumasa Suenaga
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
Helidon 概要
Helidon 概要
オラクルエンジニア通信
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
Takahiro YAMADA
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行について
Shigeru Tatsuta
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
Shinji Takao
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
Yuji Kubota
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
Takakiyo Tanaka
More Related Content
What's hot
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
Helidon 概要
Helidon 概要
オラクルエンジニア通信
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
Takahiro YAMADA
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行について
Shigeru Tatsuta
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
Shinji Takao
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
What's hot
(20)
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Helidon 概要
Helidon 概要
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行について
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
トランザクションの設計と進化
トランザクションの設計と進化
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Similar to Unified JVM Logging
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
Yuji Kubota
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
Takakiyo Tanaka
Prepare for Java 9 #jjug
Prepare for Java 9 #jjug
Yuji Kubota
ななめ45°から見たJavaOne
ななめ45°から見たJavaOne
AdvancedTechNight
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
Koichi Sakata
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Asami Abe
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
Naoto Gohko
JavaScript.Next Returns
JavaScript.Next Returns
dynamis
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
Ryuta Otaki
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
明日から試せる!ソフトウエアベースストレージ「ScaleIO」のご紹介 - OpenStack最新情報セミナー 2015年9月
明日から試せる!ソフトウエアベースストレージ「ScaleIO」のご紹介 - OpenStack最新情報セミナー 2015年9月
VirtualTech Japan Inc.
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
satsuki fukazu
RapidMinerのインストール【Ubuntu 14.04 LTS】
RapidMinerのインストール【Ubuntu 14.04 LTS】
Satoshi Kitajima
JBoss AS7 rev2
JBoss AS7 rev2
nekop
JBoss AS7 rev3
JBoss AS7 rev3
nekop
JavaScript.Next
JavaScript.Next
dynamis
JavaOne2012報告会 Java ME
JavaOne2012報告会 Java ME
Hiroki Ooyama
Similar to Unified JVM Logging
(20)
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
Prepare for Java 9 #jjug
Prepare for Java 9 #jjug
ななめ45°から見たJavaOne
ななめ45°から見たJavaOne
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
PlayFramework1.x基礎編
PlayFramework1.x基礎編
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
JavaScript.Next Returns
JavaScript.Next Returns
Play jjug2012spring
Play jjug2012spring
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
明日から試せる!ソフトウエアベースストレージ「ScaleIO」のご紹介 - OpenStack最新情報セミナー 2015年9月
明日から試せる!ソフトウエアベースストレージ「ScaleIO」のご紹介 - OpenStack最新情報セミナー 2015年9月
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
RapidMinerのインストール【Ubuntu 14.04 LTS】
RapidMinerのインストール【Ubuntu 14.04 LTS】
JBoss AS7 rev2
JBoss AS7 rev2
JBoss AS7 rev3
JBoss AS7 rev3
JavaScript.Next
JavaScript.Next
JavaOne2012報告会 Java ME
JavaOne2012報告会 Java ME
More from Yuji Kubota
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16
Yuji Kubota
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
Yuji Kubota
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15
Yuji Kubota
オンライン会議と音声認識
オンライン会議と音声認識
Yuji Kubota
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
Yuji Kubota
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13
Yuji Kubota
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
Introduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjug
Yuji Kubota
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?
Yuji Kubota
Project Jigsaw #kanjava
Project Jigsaw #kanjava
Yuji Kubota
Java 9 and Future #jjug
Java 9 and Future #jjug
Yuji Kubota
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Yuji Kubota
jcmd #javacasual
jcmd #javacasual
Yuji Kubota
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
Yuji Kubota
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjug
Yuji Kubota
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUG
Yuji Kubota
More from Yuji Kubota
(20)
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15
オンライン会議と音声認識
オンライン会議と音声認識
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Introduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjug
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?
Project Jigsaw #kanjava
Project Jigsaw #kanjava
Java 9 and Future #jjug
Java 9 and Future #jjug
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
jcmd #javacasual
jcmd #javacasual
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUG
Recently uploaded
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
Recently uploaded
(12)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
Unified JVM Logging
1.
Unified JVM Logging! KUBOTA
Yuji @sugarlife+ NTT OSSセンタ+ Copyright©2017 NTT corp. All Rights Reserved.+ 2017/05+
2.
はじめに! • 本セッションは Java 9
から変 わる JVM ログの設定方法を把 握することが第一目標です • Log4J を代表としたロギングの java.util.logging は扱いません ここは口頭補足用なので見えなくても OK Copyright©2017 NTT corp. All Rights Reserved.+ 2!
3.
おやくそく! • 本セッション (スライド) は、 以下の
JVM 実装に基づきます – OpenJDK 9 EA b170 (HotSpot VM) – jdk9/jdk9/hotspot 12762:b3ee8ab233ed EA = Early Access。正式リリース前のバイナリ Copyright©2017 NTT corp. All Rights Reserved.+ 3! $ java -version java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+170) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+170, mixed mode)+
4.
「楽してJVMを学びたい」シリーズを喋ってる人 Copyright©2017 NTT corp.
All Rights Reserved.+ 4! KUBOTA Yuji (@sugarlife) Java Technical Support Engineer @NTT OSS センタ OpenJDK author, IcedTea committer Speaker (JavaOne, JJUG, etc…) Who I am!
5.
Agenda! • そもそもなぜ変わるのか • 設定方法を把握する – 概要 – ログの設定方法 – Java 8 設定からの移行 • お役立ち(?)情報 設定の仕方を覚えて帰りましょう Copyright©2017
NTT corp. All Rights Reserved.+ 5!
6.
Next! • そもそもなぜ変わるのか • 設定方法を把握する – 概要 – ログの設定方法 – Java 8 設定からの移行 • お役立ち(?)情報 JDK
9 から変わる理由 Copyright©2017 NTT corp. All Rights Reserved.+ 6!
7.
歴史的経緯! • 元々は標準出力 • ファイルにも出力に対応 • タイムスタンプやより詳細な内 容を出力するように改修 • GCログ、JITコンパイルログな ど出力される内容(種類)も増加 バージョンを重ねるごとにアドホックに改善 Copyright©2017 NTT corp.
All Rights Reserved.+ 7!
8.
問題点! • 出力内容に一貫性がない – コンポーネントごとにまちまち – メッセージも半固定で柔軟に実装 できない (OpenJDK 開発での問題) • 設定が多種多様過ぎる • レベルやカテゴリ制御がない アドホック過ぎて一貫性が失われた Copyright©2017
NTT corp. All Rights Reserved.+ 8!
9.
一貫性のない例! Copyright©2017 NTT corp.
All Rights Reserved.+ 9! [GC [1 CMS-initial-mark: 2925342K(3853568K)] 2937899K(4160256K), 0.0098890 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] [CMS-concurrent-mark-start] [CMS-concurrent-mark: 0.454/0.454 secs] [Times: user=1.38 sys=0.00, real=0.45 secs] [GC3.586: [ParNew (promotion failed): 232923K->283768K(306688K), 0.1500250 secs] 3.736: [CMS: 3102003K->240898K(3853568K), 1.8438740 secs] 3334926K->259898K(4160256K), [CMS Perm : 125100K- >115103K(262144K)], 1.9941370 secs] [Times: user=2.05 sys=0.00, real=1.99 secs] [Full GC62.696: [CMS64.460: [CMS-concurrent-sweep: 2.319/2.386 secs] [Times: user=3.75 sys=0.13, real=2.39 secs] (concurrent mode failure): 3315076K- JDK7uのログ+ マイナーアップデートで変わるのが一番辛い
10.
一貫性のない例! マイナーアップデートで変わるのが一番辛い Copyright©2017 NTT corp.
All Rights Reserved.+ 10! [GC [1 CMS-initial-mark: 2925342K(3853568K)] 2937899K(4160256K), 0.0098890 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] [CMS-concurrent-mark-start] [CMS-concurrent-mark: 0.454/0.454 secs] [Times: user=1.38 sys=0.00, real=0.45 secs] [GC3.586: [ParNew (promotion failed): 232923K->283768K(306688K), 0.1500250 secs] 3.736: [CMS: 3102003K->240898K(3853568K), 1.8438740 secs] 3334926K->259898K(4160256K), [CMS Perm : 125100K- >115103K(262144K)], 1.9941370 secs] [Times: user=2.05 sys=0.00, real=1.99 secs] [Full GC62.696: [CMS64.460: [CMS-concurrent-sweep: 2.319/2.386 secs] [Times: user=3.75 sys=0.13, real=2.39 secs] (concurrent mode failure): 3315076K- 唐突かつ特に 意味はない+ CMS-initial-mark-startは?+ 出ないケースがある(上のログもFull GC)+ フェーズごとに異なる値(size)+ JDK7uのログ+ フェーズごとに異なる値(time)+
11.
問題点! • 出力内容に一貫性がない – コンポーネントごとにまちまち • 設定が多種多様過ぎる – 実行後は変更ができない • レベルやカテゴリ制御がない 多種多様性が便利なのはその通り Copyright©2017 NTT corp.
All Rights Reserved.+ 11!
12.
PrintXX, TraceXX だけでも
66 種類ある(8u131) Copyright©2017 NTT corp. All Rights Reserved.+ 12! PrintAdaptiveSizePolicy+ PrintCMSInitiationStatistics+ PrintCMSStatistics+ PrintClassHistogram+ PrintClassHistogramAfterFullGC+ PrintClassHistogramBeforeFullGC+ PrintCodeCache+ PrintCodeCacheOnCompilation+ PrintCommandLineFlags+ PrintCompilation+ PrintConcurrentLocks+ PrintFLSCensus+ PrintFLSStatistics+ PrintGC+ PrintGCApplicationConcurrentTime+ PrintGCApplicationStoppedTime+ PrintGCCause+ PrintGCDateStamps+ PrintGCDetails+ PrintGCID+ PrintGCTaskTimeStamps+ PrintGCTimeStamps+ PrintHeapAtGC+ PrintHeapAtGCExtended+ PrintHeapAtSIGBREAK+ PrintJNIGCStalls+ PrintJNIResolving+ PrintOldPLAB+ PrintOopAddress+ PrintPLAB PrintPromotionFailure+ PrintReferenceGC+ PrintSafepointStatistics+ PrintSharedArchiveAndExit PrintSharedDictionary+ PrintSharedSpaces PrintTLAB+ PrintTenuringDistribution+ PrintTieredEvents+ PrintVMOptions+ PrintVMQWaitTime+ PrintWarnings+ TraceBiasedLocking+ TraceClassLoading+ TraceClassLoadingPreorder+ TraceClassPaths+ TraceClassResolution+ TraceClassUnloading TraceDynamicGCThreads+ TraceJVMTI+ PrintParallelOldGCPhaseTimes PrintStringDeduplicationStatistics+ PrintStringTableStatistics PrintSafepointStatisticsCount+ PrintSafepointStatisticsTimeout+ TraceGen0Time+ TraceGen1Time+ TraceLoaderConstraints+ TraceMetadataHumongousAllocation+ TraceMonitorInflation+ TraceParallelOldGCTasks+ TraceRedefineClasses+ TraceSafepointCleanupTime+ TraceSuspendWaitFailures+ 設定の多種多様さ(一部例)! ○:後から変えられない ので事前に把握が必要+ △:細やかな設定が可能+ ◎:無理ゲー+
13.
設定の多種多様さ! • GC ログの場合 – 全て別々の設定 ログローテートは GC
ログにだけある Copyright©2017 NTT corp. All Rights Reserved.+ 13! -Xloggc:/path/to/gc_%p_%t.log #出力先 -XX:+PrintGCDetails #詳細出力 -XX:+PrintGCDateStamps #タイムスタンプ -XX:+UseGCLogFileRotation #ログローテート -XX:GCLogFileSize=100m #(〃)サイズ数 -XX:NumberOfGCLogFiles=7 #(〃)世代数 JDK8u131の設定+
14.
問題点! • 出力内容に一貫性がない – コンポーネントごとにまちまち • 設定が多種多様過ぎる – 実行後は変更ができない • レベルやカテゴリ管理がない – デバッグレベルはあるが別バイナリ デバッグ用バイナリは自分でビルドが必要 Copyright©2017 NTT corp.
All Rights Reserved.+ 14!
15.
カテゴリ管理がないと…! – 正確な理解には実装の確認が必要 – 複数種別のログが混ざると経験に 基づいて読み解く必要がある デバッグログはパーサーを書くのも大変 Copyright©2017 NTT corp.
All Rights Reserved.+ 15! [GC3.586: [ParNew (promotion failed): 232923K->283768K(306688K), 0.1500250 secs] 3.736: [CMS: 3102003K->240898K(3853568K), 1.8438740 secs] 3334926K->259898K(4160256K), [CMS Perm : 125100K- >115103K(262144K)], 1.9941370 secs] [Times: user=2.05 sys=0.00, real=1.99 secs] JDK7uのログ+ それぞれ何の値か判断可能か?+
16.
問題点! • 出力内容に一貫性がない – コンポーネントごとにまちまち • 設定が多種多様過ぎる – 実行後は変更ができない • レベルやカテゴリ管理がない – デバッグレベルはあるが別バイナリ アドホックに追加するのはもうやめよう Copyright©2017 NTT corp.
All Rights Reserved.+ 16!
17.
Unified JVM Logging! • フレームワークを導入して一貫 性を保つ
(JEP 158) – カテゴリ分け、ログレベルを導入 – 統一された実装・設定・出力 • 特に GC ログ周りを大幅に手入 れ (JEP 271) JEP 271 は Unified GC Logging Copyright©2017 NTT corp. All Rights Reserved.+ 17!
18.
Quiz #1! • Java 8
以前のログ出力に関係す るフラグは -XX:+TraceXXX (17 種類) -XX:+PrintXXX(49種類)以 外にもある。マルかバツか。 マルバツクイズ Copyright©2017 NTT corp. All Rights Reserved.+ 18!
19.
Quiz #1! • Java 8
以前のログ出力に関係す るフラグは -XX:+TraceXXX (17 種類) -XX:+PrintXXX(49種類)以 外にもある。マルかバツか。 • マル。例えば ParallelGCVerbose, ProfilerPrintByteCodeStatistics など マルバツクイズ Copyright©2017 NTT corp. All Rights Reserved.+ 19! ドキュメントもほぼない
20.
Next! • そもそもなぜ変わるのか • 設定方法を把握する – 概要 – ログの設定方法 – Java 8 設定からの移行 • お役立ち(?)情報 統一された設定とやらを見せてもらおうか! Copyright©2017
NTT corp. All Rights Reserved.+ 20!
21.
設定方法! • シンプルな設定 – 全て -Xlog で設定する 「ログはこれ」と言えるのは大きい Copyright©2017
NTT corp. All Rights Reserved.+ 21! -Xlog [:[what] [:[output] [:[decorators] [:output-options]]]]
22.
基本的な設定方法! • -Xlog 全てのinfoログを標準出力 • -Xlog:help ヘルプメッセージ • -Xlog:disable
ログ無効化+ デフォルトは全 warning ログが標準出力される Copyright©2017 NTT corp. All Rights Reserved.+ 22! -Xlogを設定してない場合+
23.
ログ例! 全 info ログを有効にしてバージョン表示 Copyright©2017
NTT corp. All Rights Reserved.+ 23! % java -Xlog -version [0.003s][info][os] SafePoint Polling address: 0x00007f6d378bf000 [0.003s][info][os] Memory Serialize Page address: 0x00007f6d378be000 [0.003s][info][os,thread] Capturing initial stack in user thread: req. size: 1024K, actual size: 1024K, top=0x00007ffc84f89000, bottom=0x00007ffc84e89000 [0.003s][info][os ] HotSpot is running with glibc 2.24, NPTL 2.24 : [0.362s][info][startuptime ] Create VM, 0.3598174 secs java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+165) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+165, mixed mode) [0.364s][info][os,thread ] JavaThread detaching (tid: 110366). : [0.371s][info][os,thread ] Thread finished (tid: 110367, pthread id: 140272699377408). [0.371s][info][os,thread ] Thread finished (tid: 110376, pthread id: 140272177387264). ログ内容+
24.
ログ例! デコレータ(decorator):各ログに付く汎用情報 Copyright©2017 NTT corp.
All Rights Reserved.+ 24! % java -Xlog -version [0.003s][info][os] SafePoint Polling address: 0x00007f6d378bf000 [0.003s][info][os] Memory Serialize Page address: 0x00007f6d378be000 [0.003s][info][os,thread] Capturing initial stack in user thread: req. size: 1024K, actual size: 1024K, top=0x00007ffc84f89000, bottom=0x00007ffc84e89000 [0.003s][info][os ] HotSpot is running with glibc 2.24, NPTL 2.24 : [0.362s][info][startuptime ] Create VM, 0.3598174 secs java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+165) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+165, mixed mode) [0.364s][info][os,thread ] JavaThread detaching (tid: 110366). : [0.371s][info][os,thread ] Thread finished (tid: 110367, pthread id: 140272699377408). [0.371s][info][os,thread ] Thread finished (tid: 110376, pthread id: 140272177387264). 起動経過時間、 ログレベル、タグ (デフォルト)+ ログ内容+
25.
ログ例! タグ(tags):各ログは必ず1~5個のタグに属する Copyright©2017 NTT corp.
All Rights Reserved.+ 25! % java -Xlog -version [0.003s][info][os] SafePoint Polling address: 0x00007f6d378bf000 [0.003s][info][os] Memory Serialize Page address: 0x00007f6d378be000 [0.003s][info][os,thread] Capturing initial stack in user thread: req. size: 1024K, actual size: 1024K, top=0x00007ffc84f89000, bottom=0x00007ffc84e89000 [0.003s][info][os ] HotSpot is running with glibc 2.24, NPTL 2.24 : [0.362s][info][startuptime ] Create VM, 0.3598174 secs java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+165) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+165, mixed mode) [0.364s][info][os,thread ] JavaThread detaching (tid: 110366). : [0.371s][info][os,thread ] Thread finished (tid: 110367, pthread id: 140272699377408). [0.371s][info][os,thread ] Thread finished (tid: 110376, pthread id: 140272177387264). 起動経過時間、 ログレベル、タグ (デフォルト)+ タグ≒ログのカテゴリ+ ログ内容+カテゴリに沿ったログ内容+
26.
Quiz #2! • java -Xlog:disable -version
を実行 した場合、バージョン表示は出る? デフォルト(-Xlogの設定無し)は warning が有効 Copyright©2017 NTT corp. All Rights Reserved.+ 26! ログ無効+
27.
Quiz #2! • java -Xlog:disable -version
を実行 した場合、バージョン表示は出る? • 出ます。バージョン関係はJVMログ とは別扱いのエラーメッセージです+ • ログではなく java コマンドの応答だ と考えると解りやすい 前スライドで decorator が出てないのが解る Copyright©2017 NTT corp. All Rights Reserved.+ 27! ログ無効+
28.
Next! • そもそもなぜ変わるのか • 設定方法を把握する – 概要 – ログの設定方法 – Java 8 設定からの移行 • お役立ち(?)情報 設定方法のポリシーを学びましょう Copyright©2017
NTT corp. All Rights Reserved.+ 28!
29.
Syntax! – what:出力内容をタグとレベルで選択+ – output:出力先の指定+ – decorators:デコレータの指定+ – output-options:ログローテート設定 全て省略できる(未指定時用の値が設定される) Copyright©2017 NTT corp.
All Rights Reserved.+ 29! -Xlog[:[what][:[output][:[decorators][:output-options]]]] -Xlog[:[what][:[output][:[decorators][:output-options]]]]
30.
decorator! • 各ログに追記される汎用情報+ – 未指定の場合: uptime, level,
tags • 起動時間(秒)、ログレベル、タグ 出力順は固定 Copyright©2017 NTT corp. All Rights Reserved.+ 30! none, time (t), utctime (utc), timemillis (tm), timenanos (tn), uptime (u), uptimemillis (um), uptimenanos (un), hostname (hn), pid (p), tid (ti), level (l), tags (tg) -Xlog[:[what][:[output][:[decorators][:output-options]]]] 何もなし+
31.
decorator! • 各ログに追記される汎用情報+ – 未指定の場合: uptime, level,
tags • 起動時間(秒)、ログレベル、タグ 出力順は固定 Copyright©2017 NTT corp. All Rights Reserved.+ 31! none, time (t), utctime (utc), timemillis (tm), timenanos (tn), uptime (u), uptimemillis (um), uptimenanos (un), hostname (hn), pid (p), tid (ti), level (l), tags (tg) -Xlog[:[what][:[output][:[decorators][:output-options]]]] 時刻+ 起動時間+ 何もなし+
32.
decorator! • 全部乗せ – 「,」で区切れば複数指定できる+ 指定の順番を変えても出力の順番はこの通り Copyright©2017 NTT corp.
All Rights Reserved.+ 32! % java -Xlog:::t,utc,u,tm,um,tn,un,hn,p,ti,l,tg [2017-05-12T07:38:12.016-0700] [2017-05-12T14:38:12.016+0000] [14.101s] [1494599892016ms][14102ms] [963128253785077ns][14101433214ns] [localhost.localdomain][73398][115144] [info][os,thread ] Thread finished (tid: 115144, pthread id: 139879454586624). -Xlog[:[what][:[output][:[decorators][:output-options]]]] ※本来は一行表示+
33.
decorator! • 全部乗せ – 「,」で区切れば複数指定できる+ pid はファイル名に付ければほぼ困らない Copyright©2017 NTT
corp. All Rights Reserved.+ 33! % java -Xlog:::t,utc,u,tm,um,tn,un,hn,p,ti,l,tg [2017-05-12T07:38:12.016-0700] [2017-05-12T14:38:12.016+0000] [14.101s] [1494599892016ms][14102ms] [963128253785077ns][14101433214ns] [localhost.localdomain][73398][115144] [info][os,thread ] Thread finished (tid: 115144, pthread id: 139879454586624). -Xlog[:[what][:[output][:[decorators][:output-options]]]] process id と thread id は見分けにくい+ ※本来は一行表示+
34.
decorator! • お勧めの最低設定 – (utc)time,level,tags – 短命なプロセスや詳細解析の場合は uptime(millis|nanos)もあると便利 ローカル時刻か UTC かはお好み Copyright©2017
NTT corp. All Rights Reserved.+ 34! % java -Xlog:::t,utc,l,tg [2017-05-12T07:38:12.016-0700] [2017-05-12T14:38:12.016+0000] [info][os,thread ] Thread finished (tid: 115144, pthread id: 139879454586624). -Xlog[:[what][:[output][:[decorators][:output-options]]]] ※本来は一行表示+
35.
output, output-option! • output:
出力先 (未指定時:stdout) – stdout / stderr / file=<filename> • %p: pid, %t: 開始時刻 (filenameで利用) • output-option: ログローテート設定 – 「,」で区切って以下の二つを指定する – filecount=n: 世代数 (未指定時:5) – filesize=n: ファイルサイズ (未指定時:20M) ローテート設定は指定して増やした方が無難 Copyright©2017 NTT corp. All Rights Reserved.+ 35! -Xlog[:[what][:[output][:[decorators][:output-options]]]]
36.
what! • 出力内容をタグとレベルで指定 – Tag=Level • -Xlog:all=info • -Xlog:gc*=debug • Level (未指定の場合:info) trace は
hotspot 内部実装を追ってる人向け Copyright©2017 NTT corp. All Rights Reserved.+ 36! off, trace, debug, info, warning, error -Xlog[:[what][:[output][:[decorators][:output-options]]]]
37.
what! • Tag (未指定の場合:all) 悪夢再び? Copyright©2017 NTT
corp. All Rights Reserved.+ 37! add, age, alloc, aot, annotation, arguments, attach, barrier, biasedlocking, blocks, bot, breakpoint, census, class, classhisto, cleanup, compaction, constraints, constantpool, coops, cpu, cset, data, defaultmethods, dump, ergo, exceptions, exit, fingerprint, freelist, gc, hashtables, heap, humongous, ihop, iklass, init, itables, jni, jvmti, liveness, load, loader, logging, mark, marking, methodcomparator, metadata, metaspace, mmu, modules, monitorinflation, monitormismatch, nmethod, normalize, objecttagging, obsolete, oopmap, os, pagesize, patch, path, phases, plab, promotion, preorder, protectiondomain, ref, redefine, refine, region, remset, purge, resolve, safepoint, scavenge, scrub, stacktrace, stackwalk, start, startuptime, state, stats, stringdedup, stringtable, stackmap, subclass, survivor, sweep, task, thread, tlab, time, timer, update, unload, verification, verify, vmoperation, vtables, workgang, jfr, system, parser, bytecode, setting, event -Xlog[:[what][:[output][:[decorators][:output-options]]]]
38.
Tags! • 大分類から小分類まで混在して おり、全部を覚える必要はない+ • 重要なタグの例+ – GC
関連:gc – エラー関連:exceptions – スレッド関連:os, thread – 動作解析関連:class, vmoperation 実質二つのログしかないタグもある Copyright©2017 NTT corp. All Rights Reserved.+ 38! -Xlog[:[what][:[output][:[decorators][:output-options]]]]
39.
タグの設定方法! タグは * +
, を利用して柔軟に指定できる Copyright©2017 NTT corp. All Rights Reserved.+ 39! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog:T1 • -Xlog:T1* • -Xlog:T1+T2 • -Xlog:T1+T2* • -Xlog:T1*+T2* • -Xlog:T1*,T2* • -Xlog:T1*,T2*=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX TX+ T1+ T2+ all で 全部+
40.
タグの設定方法! Copyright©2017 NTT corp.
All Rights Reserved.+ 40! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog:T1 • -Xlog:T1* • -Xlog:T1+T2 • -Xlog:T1+T2* • -Xlog:T1*+T2* • -Xlog:T1*,T2* • -Xlog:T1*,T2*=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX T1+ T1だけ。1タグのログは主にサマリ確認用 T2+ TX+
41.
タグの設定方法! T1関係全て。gc* 等、その機能全体の監視時に Copyright©2017 NTT
corp. All Rights Reserved.+ 41! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog:T1 • -Xlog:T1* • -Xlog:T1+T2 • -Xlog:T1+T2* • -Xlog:T1*+T2* • -Xlog:T1*,T2* • -Xlog:T1*,T2*=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX T1+ TX+ T2+
42.
タグの設定方法! この組合せのみ。別出力とか制限付けたい時に Copyright©2017 NTT corp.
All Rights Reserved.+ 42! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog:T1 • -Xlog:T1* • -Xlog:T1+T2 • -Xlog:T1+T2* • -Xlog:T1*+T2* • -Xlog:T1*,T2* • -Xlog:T1*,T2*=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX TX+ T1+ T2+
43.
タグの設定方法! T1とT2が含まれる全てのログ。 Copyright©2017 NTT corp.
All Rights Reserved.+ 43! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog:T1 • -Xlog:T1* • -Xlog:T1+T2 • -Xlog:T1+T2* • -Xlog:T1*+T2* • -Xlog:T1*,T2* • -Xlog:T1*,T2*=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX TX+ T1+ T2+
44.
タグの設定方法! T1+T2* ≒ (T1+T2)* Copyright©2017
NTT corp. All Rights Reserved.+ 44! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog:T1 • -Xlog:T1* • -Xlog:T1+T2 • -Xlog:T1+T2* • -Xlog:T1*+T2* • -Xlog:T1*,T2* • -Xlog:T1*,T2*=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX TX+ T1+ T2+ これは NG+
45.
タグの設定方法! T1とT2に関連するもの全部。大分類二つとか Copyright©2017 NTT corp.
All Rights Reserved.+ 45! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog:T1 • -Xlog:T1* • -Xlog:T1+T2 • -Xlog:T1+T2* • -Xlog:T1*+T2* • -Xlog:T1*,T2* • -Xlog:T1*,T2*=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX T1+ T2+ TX+ これは NG+
46.
T1+ タグの設定方法! T1関連は出しつつ、T2関連は秘密にする Copyright©2017 NTT corp.
All Rights Reserved.+ 46! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog:T1 • -Xlog:T1* • -Xlog:T1+T2 • -Xlog:T1+T2* • -Xlog:T1*+T2* • -Xlog:T1*,T2* • -Xlog:T1*,T2*=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX TX+ T2+ これは NG+
47.
タグの設定方法! これはどうなるか? Copyright©2017 NTT corp.
All Rights Reserved.+ 47! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog: T1*=debug,T1+T2=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX T2+T1+ TX+
48.
タグの設定方法! T1 関連ログを全てdebugログ出力 Copyright©2017 NTT
corp. All Rights Reserved.+ 48! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog: T1*=debug,T1+T2=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX T1+T1+ TX+ T2+
49.
T1+ タグの設定方法! T1とT2の組合せに限ったログ Copyright©2017 NTT corp.
All Rights Reserved.+ 49! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog: T1*=debug,T1+T2=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX T1+T1+ TX+ T1+ T2+
50.
T1+ タグの設定方法! は、出力しない Copyright©2017 NTT corp.
All Rights Reserved.+ 50! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog: T1*=debug,T1+T2=off [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX T1+T1+ TX+ T1+ T2+
51.
T1+ タグの設定方法! 最終的に橙色部分が debug レベルで出力 Copyright©2017
NTT corp. All Rights Reserved.+ 51! -Xlog[:[what][:[output][:[decorators][:output-options]]]] • -Xlog: T1*=debug,T1+T2=off T1+T1+ TX+ T1+ [T1 ] XXX [T2 ] XXX [TX ] XXX [T1,T2 ] XXX [T1,TX ] XXX [T2,TX ] XXX [T1,T2,TX] XXX T2+
52.
具体的な使い道の例! -Xlog:gc • GC結果の概要だけ確認 -Xlog:class+load=debug,class+unload=debug • クラスローディングとアンローディングの確認 -Xlog:gc*=debug,vmoperation=debug •
GC挙動全体の詳細とSTWに関わる処理の確認 -Xlog:gc*=debug,gc+humongous=off • 詳細確認したいがhumongousリージョン関連GCの場合、 本リージョンのメモリマップ情報が大量に出力されるの でオフにする (,で付け足して他もオフにできる) Copyright©2017 NTT corp. All Rights Reserved.+ 52! -Xlog[:[what][:[output][:[decorators][:output-options]]]] フラグを調べるより直感的 TraceClassLoaderDataは class+loader+data=debug+
53.
Quiz #3! • java -Xlog:disable –Xlog:gc*
とした 場合はどうなるか? 最初のみ有効 or 最後のみ有効 or それ以外? Copyright©2017 NTT corp. All Rights Reserved.+ 53!
54.
Quiz #3! • java -Xlog:disable –Xlog:gc*
とした 場合はどうなるか? • 前から順番に全て評価する。全部無 効にした後に、GC関係のinfoログを 有効にするので –Xlog:gc* と同義+ • 順番に評価されるので、最後の設定 のみ有効になるわけではない 別々のファイルに出力したい時などで使えます Copyright©2017 NTT corp. All Rights Reserved.+ 54!
55.
Next! • そもそもなぜ変わるのか • 設定方法を把握する – 概要 – ログの設定方法 – Java 8 設定からの移行 • お役立ち(?)情報 これまでの設定からこれからの設定へ Copyright©2017
NTT corp. All Rights Reserved.+ 55!
56.
Java 8からのGCログ移行! • Java
8 • Java 9 以前より詳細になるが後でフィルタすれば良い Copyright©2017 NTT corp. All Rights Reserved.+ 56! -Xloggc:/path/to/gc_%p_%t.log #出力先 -XX:+PrintGCDetails #詳細出力 -XX:+PrintGCDateStamps #タイムスタンプ -XX:+UseGCLogFileRotation #ログローテート -XX:GCLogFileSize=100m #(〃)サイズ数 -XX:NumberOfGCLogFiles=7 #(〃)世代数 -Xlog:gc*=debug:/path/to/gc_%p_%t.log:time, level,tags:filesize=100m, filecount=7 ※ログサイズ等は適当です(普通は足りない)+
57.
Next! • そもそもなぜ変わるのか • 設定方法を把握する – 概要 – ログの設定方法 – Java 8 設定からの移行+ • お役立ち(?)情報 今回の変更により便利になったところなど Copyright©2017
NTT corp. All Rights Reserved.+ 57!
58.
起動後もログ設定が可能! • jcmd で起動後から変えられる 無効化は jcmd
VM.log disable を実行 Copyright©2017 NTT corp. All Rights Reserved.+ 58! $ jcmd <pid> VM.log output="file=/path/to/gc_%p_%t.log" output_options="filecount=7,filesize=200m" what="gc*=debug" decorators="time,level,tags" <pid>: Command executed successfully $ jcmd <pid> VM.log list <pid>: : Log output configuration: #0: stdout all=warning uptime,level,tags #1: stderr all=off uptime,level,tags #2: file=/path/to/gc_%p_%t.log gc*=debug time,level,tags+ -Xlog の設定 方法と一緒+ output=#2 を指定 すると上書き可能+
59.
強制ログローテート! • jcmd で手動ローテートが可能 – ファイル出力かつfilecount=1以上 が条件 – filesize=0 にして
cron 等で実行す れば定期的なローテートが可能 filecount=0 だと実行しても同じファイルに追記 Copyright©2017 NTT corp. All Rights Reserved.+ 59! $ jcmd <pid> VM.log rotate <pid>: Command executed successfully
60.
ログローテート! • -Xlog::test.log::filecount=n 先ずは指定したファイルに出力 Copyright©2017 NTT
corp. All Rights Reserved.+ 60! test.log+
61.
ログローテート! • -Xlog::test.log::filecount=n ローテート 1
回目 Copyright©2017 NTT corp. All Rights Reserved.+ 61! test.log+ test.log.0+ ←移動したら空ファイル+
62.
ログローテート! • -Xlog::test.log::filecount=n ローテート 2
回目 Copyright©2017 NTT corp. All Rights Reserved.+ 62! test.log+ test.log.0+ test.log.1+
63.
ログローテート! • -Xlog::test.log::filecount=n ローテート n
回目 Copyright©2017 NTT corp. All Rights Reserved.+ 63! test.log+ test.log.0+ test.log.1+ test.log.(n-1)+…+
64.
ログローテート! • -Xlog::test.log::filecount=n ローテート n+1
回目 Copyright©2017 NTT corp. All Rights Reserved.+ 64! test.log+ test.log.0+ test.log.1+ test.log.(n-1)+…+test.log.0 上書き+
65.
ログローテート! • -Xlog::test.log::filecount=n filecount は残したい世代分設定しましょう Copyright©2017
NTT corp. All Rights Reserved.+ 65! test.log+ test.log.0+ test.log.1+ test.log.(n-1)+…+test.log.0 上書き+ test.log.1 上書き+ test.log.(n-1) 上書き+
66.
GCの要確認ログの移行状況! • Full GC
起因となるイベント – Evacuation Failure (G1 GC) – promotion failed (CMS GC) – Concurrent mode failure (CMS GC) CMS GC は JDK 9 から非推奨化 Copyright©2017 NTT corp. All Rights Reserved.+ 66! [info][gc] GC(N) To-space exhausted [info][gc, promotion] GC(N) Promotion failed [debug][gc] GC(N) Concurrent mode failure ナンバリング(発生回数)+
67.
GCの要確認ログの移行状況! • Stop The
World を伴う GC 処理 Pause が付く Copyright©2017 NTT corp. All Rights Reserved.+ 67! [info][gc] GC(N) Pause <種別> (<GC Cause>) [info][gc] GC(1) Pause Young (Allocation Failure) [info][gc] GC(2) Pause Full (Allocation Failure) # G1 GC [info][gc] GC(3) Pause Initial Mark (G1 Evacuation Pause) [info][gc] GC(3) Pause Remark [info][gc] GC(3) Pause Cleanup # CMS GC [info][gc] GC(4) Pause Initial Mark [info][gc] GC(4) Pause Remark
68.
STW の確認方法! -Xlog:gc*=debug,vmoperation=debug Copyright©2017 NTT
corp. All Rights Reserved.+ 68! [debug][vmoperation] begin VM_Operation (0x0000700001c2e1c8): G1IncCollectionPause, mode: safepoint, requested by thread 0x00007fb6818df800 [info ][gc,start ] GC(6) Pause Initial Mark (G1 Evacuation Pause) :(Initial Mark の処理) [info ][gc ] GC(6) Pause Initial Mark (G1 Evacuation Pause) 114M->82M(256M) 2.598ms [info ][gc,cpu ] GC(6) User=0.00s Sys=0.00s Real=0.01s [debug][vmoperation] end VM_Operation (0x0000700001c2e1c8): G1IncCollectionPause, mode: safepoint, requested by thread 0x00007fb6818df800 G1 GC の Initial Mark フェーズの例 (抜粋)+ STW 時間+ CPU 時間+
69.
GC 以外の STW
確認方法! • VM_Operation で実行される – タイムスタンプの差分(今回は0.02sec) でSTW時間が解る タイムスタンプの分解能以上は不可なので注意 Copyright©2017 NTT corp. All Rights Reserved.+ 69! [2017-05-17T23:38:35.277-0900][debug][vmoperation] begin VM_Operation (0x0000700001c2e1c8): Deoptmize, mode: safepoint, requested by thread 0x00007fb6818df800 :STW を伴う処理 [2017-05-12T23:38:35.279-0900][debug][vmoperation] end VM_Operation (0x0000700001c2e1c8): Deoptmize, mode: safepoint, requested by thread 0x00007fb6818df800 対応している+
70.
ヒープ状況の確認! • ヒープ全体の使用量と容量 – 各 GC
方式で共通の表示 • Pause 処理終了時にヒープ全体量出力 領域ごとは出ないが概要は掴める Copyright©2017 NTT corp. All Rights Reserved.+ 70! [info ][gc] GC(6) Pause Initial Mark (G1 Evacuation Pause) 114M->82M(256M) 2.598ms 処理前の 使用量+ 処理後の 使用量+ 容量+
71.
ヒープ状況の確認(G1)! • 各領域のヒープ状況 – GC 方式ごとに異なる G1 GC
の各領域毎のメモリ状況 Copyright©2017 NTT corp. All Rights Reserved.+ 71! E+ O S+ O O S+ S+ E+ H O E+ O O E+ S+ O O O O H+ O E+ E+ O 水:Eden 橙:Survivor 緑:Old 紫:Humongous 藍:未使用+
72.
ヒープ状況の確認(G1)! • 各領域のヒープ状況(info) 水:Eden 橙:Survivor
緑:Old 紫:Humongous 藍:未使用 info ログは単位がリージョン数で出力される Copyright©2017 NTT corp. All Rights Reserved.+ 72! [info][gc,heap ] Heap region size: 1M ------------------------------------------------------------------------------------------------------------------ :GC処理 [info][gc,heap ] GC(8) Eden regions: 1->0(68) [info][gc,heap ] GC(8) Survivor regions: 3->4(9) [info][gc,heap ] GC(8) Old regions: 8->8 [info][gc,heap ] GC(8) Humongous regions: 106->94 [info][gc,metaspace] GC(8) Metaspace: 6823K->6823K(1056768K) :debug ログ [info][gc ] GC(8) Pause Initial Mark (G1 Evacuation Pause) 116M->105M(308M) 3.401ms リージョンサ イズが異なる+ 掛算してサイズ計算+ Humongousはここから引き算して概算+
73.
ヒープ状況の確認(G1)! • 各領域のヒープ状況(debug)+ 水:Eden 橙:Survivor
緑:Old 紫:Humongous 藍:未使用+ Humongous は? Copyright©2017 NTT corp. All Rights Reserved.+ 73! [debug][gc,heap ] GC(8) Heap after GC invocations=13 (full 0): [debug][gc,heap ] GC(8) garbage-first heap total 315392K, used 107536K [0x00000006c0000000, 0x00000006c01009a0, 0x00000007c0000000) [debug][gc,heap ] GC(8) region size 1024K, 4 young (4096K), 4 survivors (4096K) [debug][gc,heap ] GC(8) Metaspace used 6823K, capacity 6906K, committed 7040K, reserved 1056768K [debug][gc,heap ] GC(8) class space used 612K, capacity 637K, committed 640K, reserved 1048576K リージョン数+ Eden+Survivor+ サイズ+
74.
ヒープ状況の確認(G1)! • 各領域のヒープ状況(debug)+ 水:Eden 橙:Survivor
緑:Old 紫:Humongous 藍:未使用+ Live なものを心を籠めて全部足し算 Copyright©2017 NTT corp. All Rights Reserved.+ 74! [debug][gc,humongous] GC(8) Live humongous region 0 object size 1228816 start 0x00000006c0000000 with remset 1 code roots 0 is marked 0 reclaim candidate 1 type array 1 : [debug][gc,humongous] GC(8) Live humongous region 106 object size 1884176 start 0x00000006c6a00000 with remset 0 code roots 0 is marked 0 reclaim candidate 0 type array 1 [debug][gc,humongous] GC(8) Live humongous region 112 object size 860176 start 0x00000006c7000000 with remset 1 code roots 0 is marked 0 reclaim candidate 1 type array 1
75.
ULViewer! • 次世代 GC Viewer – https://github.com/YaSuenag/ulviewer タグでフィルタリング可、GC
以外も可視化 Copyright©2017 NTT corp. All Rights Reserved.+ 75!
76.
まとめ! • Java 9 からログが統一される 設定や出力が一新されて管理が楽に -Xlog:何を:どこに:装飾:ローテート • どの様に設定していくべきか? -Xlog:all=debug
から始めてフィル タリングしていくのがお勧め まずはログを読むのを楽しみましょう! Copyright©2017 NTT corp. All Rights Reserved.+ 76!
77.
Q! Copyright©2017 NTT corp.
All Rights Reserved.+ 77! おつかれさまでした
Download now