Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
なにもわからないところから始めるJVMモニタリング
Yuuki Tsubouchi (yuuk1)
April 07, 2014
Technology
5
9k
なにもわからないところから始めるJVMモニタリング
JVM Operation Casual Talks
Yuuki Tsubouchi (yuuk1)
April 07, 2014
Tweet
Share
More Decks by Yuuki Tsubouchi (yuuk1)
See All by Yuuki Tsubouchi (yuuk1)
AI時代に向けたクラウドにおける信頼性エンジニアリングの未来構想 / DICOMO2022 6A-1
yuukit
6
1.6k
AIOps研究録―SREのための システム障害の自動原因診断 / SRE NEXT 2022
yuukit
7
8.8k
Interactive AIOps
yuukit
0
1.3k
Meltria: マイクロサービスにおける 異常検知・原因分析のための データセットの動的生成システム / Meltria in IOTS2021
yuukit
1
990
AIOpsの研究動向と AIOps向けデータセットの動的生成の研究 / Introducing AIOps and A Dynamic Datasets Generating System
yuukit
1
420
分散アプリケーションの高信頼化のための 運用技術に関する研究 / A Study on Operation Technology for High Reliability of Distributed Applications
yuukit
1
560
ネットワークサービスの依存発見に向いた TCP/UDP通信の低負荷なトレース手法 / Low Overhead TCP-UDP Tracing in Kernel
yuukit
5
3.2k
クラウドのシステム運用技術に機械学習を応用する研究 / CLOUD AI
yuukit
4
2.6k
TSifter: マイクロサービスにおける性能異常の迅速な診断に向いた時系列データの次元削減手法 / TSifter in proceedings of IOTS2020
yuukit
1
1.8k
Other Decks in Technology
See All in Technology
スクラム導入して変わったチーム、組織のありかた
yumechi
0
190
USB PD で迎える AC アダプター大統一時代
puhitaku
2
1.9k
ML PM, DS PMってどんな仕事をしているの?
line_developers
PRO
1
240
データ分析基盤の要件分析の話(202201_JEDAI)
yabooun
0
260
Multi-Cloud Gatewayでデータを統治せよ!/ Data Federation with MCG
tutsunom
1
280
Deep dive in Reserved Instance ~脳死推奨量購入からの脱却~
kzkmaeda
0
540
WebLogic Server for OCI 概要
oracle4engineer
PRO
3
880
ECテックカンファレンス2023 EC事業部のモバイル開発2023
tatsumi0000
0
300
Hatena Engineer Seminar #23 「チームとプロダクトを育てる Mackerel 開発合宿」
arthur1
0
490
cdk deployに必要な権限ってなんだ?
kinyok
0
170
エアドロップ for オープンソースプロジェクト
epicsdao
0
390
PCL (Point Cloud Library)の基本となぜ点群処理か_2023年_第2版.pdf
cvmlexpertguide
0
170
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
643
54k
Bootstrapping a Software Product
garrettdimon
299
110k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
11k
Why You Should Never Use an ORM
jnunemaker
PRO
49
7.9k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
214
12k
KATA
mclloyd
12
9.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
13
1.1k
The Brand Is Dead. Long Live the Brand.
mthomps
48
2.9k
For a Future-Friendly Web
brad_frost
166
7.8k
The Language of Interfaces
destraynor
149
21k
Debugging Ruby Performance
tmm1
67
11k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
13
5.4k
Transcript
ͳʹΘ͔Βͳ͍ͱ͜Ζ͔Β ࢝ΊΔ+7.ϞχλϦϯά
id:y_uuki / @y_uuk1
None
None
✘
✘
PSGI/Plack Devel::NYTProf Devel::KYTProf Starlet Plack::Middleware::ServerStatus::Lite
PSGI/Plack Devel::NYTProf Devel::KYTProf Starlet Plack::Middleware::ServerStatus::Lite
ΠϯλʔωοτΈΔ • http://gihyo.jp/dev/serial/01/jvm-arc ! • http://www.slideshare.net/ChihiroIto1/java-16802525 JavaͲͷΑ͏ʹಈ͘ͷ͔ʙਤղͰΘ͔ΔJVMͷΈ JavaͲͷΑ͏ʹಈ͘ͷ͔ʙεϥΠυͰΘ͔ΔJVMͷΈ
ϝϞϦߏ / GCͷछྨ • Eden, Survivor, Tenured, Permanent… • γϦΞϧGCɺύϥϨϧGCɺίϯΧϨϯτGC
ϩάΛు͘ • http://n-agetsuma.hatenablog.com/entry/2014/03/30/175329 τϥϒϧʹඋ͑ΔJVMΦϓγϣϯ java -Xms?m -Xmx?m -XX:MaxPermSize=?m -Xloggc:/var/log/app/gc.log -XX:+PrintGCDetails
-XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/app -XX:ErrorFile=/var/log/app/jvm_err_pid%p.log
౷ܭใΈΔπʔϧ • jstat • jvmtop • Jolokia (JMX) • much
more…
jstat [
[email protected]
]$ sudo jstat -gc 30545 1000 S0C S1C S0U
S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 3072.0 3072.0 0.0 2400.0 343552.0 181900.4 699392.0 125193.0 55808.0 55592.9 719 8.034 0 0.000 8.034 3072.0 3072.0 0.0 2400.0 343552.0 189558.2 699392.0 125193.0 55808.0 55592.9 719 8.034 0 0.000 8.034 3072.0 3072.0 0.0 2400.0 343552.0 291417.5 699392.0 125193.0 55808.0 55592.9 719 8.034 0 0.000 8.034 3072.0 3072.0 0.0 2400.0 343552.0 291423.7 699392.0 125193.0 55808.0 55592.9 719 8.034 0 0.000 8.034 3072.0 3072.0 0.0 2400.0 343552.0 300260.1 699392.0 125193.0 55808.0 55592.9 719 8.034 0 0.000 8.034 3072.0 3072.0 0.0 2400.0 343552.0 300266.3 699392.0 125193.0 55808.0 55592.9 719 8.034 0 0.000 8.034 3072.0 3072.0 0.0 2400.0 343552.0 338223.4 699392.0 125193.0 55808.0 55592.9 719 8.034 0 0.000 8.034 3072.0 3072.0 2513.7 0.0 343552.0 5373.4 699392.0 125337.0 55808.0 55592.9 720 8.041 0 0.000 8.041 3072.0 3072.0 2513.7 0.0 343552.0 14378.4 699392.0 125337.0 55808.0 55592.9 720 8.041 0 0.000 8.041 3072.0 3072.0 2513.7 0.0 343552.0 14381.3 699392.0 125337.0 55808.0 55592.9 720 8.041 0 0.000 8.041 …
jvmtop $ jvmtop.sh <pid> JvmTop 0.8.0 alpha - 21:48:03, amd64,
4 cpus, Linux 3.10.23, load avg 0.30 http://code.google.com/p/jvmtop ! PID 30545: play.core.server.NettyServer ARGS: VMARGS: -Xms1024m -Xmx1024m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSiz[...] VM: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 1.7.0_51 UP: 7:49m #THR: 41 #THRPEAK: 44 #THRCREATED: 5867 USER: apache GC-Time: 0: 0m #GC-Runs: 892 #TotalLoadedClasses: 10033 CPU: 2.21% GC: 0.00% HEAP: 454m /1019m NONHEAP: 64m / 384m ! TID NAME STATE CPU TOTALCPU BLOCKEDBY 5862 RMI TCP Connection(3)-127.0.0. RUNNABLE 9.20% 0.29% 31 play-scheduler-1 TIMED_WAITING 0.26% 4.43% 5867 JMX server connection timeout TIMED_WAITING 0.24% 0.01% 27 New I/O worker #8 RUNNABLE 0.01% 0.71% 21 New I/O worker #2 RUNNABLE 0.01% 0.75% 22 New I/O worker #3 RUNNABLE 0.01% 0.72% 20 New I/O worker #1 RUNNABLE 0.01% 0.72% 24 New I/O worker #5 RUNNABLE 0.00% 0.72% 26 New I/O worker #7 RUNNABLE 0.00% 0.72% 23 New I/O worker #4 RUNNABLE 0.00% 0.72% Note: Only top 10 threads (according cpu load) are shown!
Jolokia $ curl http://localhost:8778/jolokia/read/java.lang:type=Memory/ NonHeapMemoryUsage {"timestamp":1396794086,"status":200,"request": {"mbean":"java.lang:type=Memory","attribute":"NonHeapMemoryUsage","type":"re ad"},"value":{"max":402653184,"committed":59179008,"init":24576000,"used": 58814424}} -javaagent:/path/to/jolokia-jvm-1.2.0-agent.jar
ՄࢹԽ • Graphite • Sensu • Fluentd • Mackerel •
NewRelic
metrics ࣌ܥྻDB αʔόཧπʔϧ
• sensu / sensu-community-plugins • java/jstat-metrics.py
• fluent-plugin-jstat • fluent-plugin-jolokia
• sensu tcp handler • fluent-plugin-graphite
None
NewRelic -javaagent:/path/to/newrelic.jar
None
Stop The World ʹඋ͑ͯ • ϞχλϦϯάͷΈΛ͔͑ͯΒͷJVM ύϥ ϝʔλνϡʔχϯά
͓·͚
ॻ੶ 2010/03 2011/10 2014/05
Πϯλʔωοτ σϑΥϧτͷΧςΰϦશ෦ফͯ͠ Linux, Kernel, Docker, JVM, Perl, Scala, Graphite, Fluentd,
Sensu, … ͦΕͬΆ͍λάΛొ͠·͘Δ
None
IUUQTNBDLFSFMJP