Submit Search
カジュアルにスレッドダンプ - @yusuke #javacasual
10 likes
•
6,745 views
Yusuke Yamamoto
スタックトレースの基本 スレッドダンプの基本 アーチェリーの基本
Technology
Read more
1 of 33
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
More Related Content
PDF
「大学院のススメ」dentooLT #15.5
nkawahara
PDF
WACATE2018Summer BPP yoshitake
Nobuhiro Yoshitake
PDF
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
PDF
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
Yusuke Yamamoto
PDF
これからはじめるGit、GitHub #stapy
Yusuke Yamamoto
PDF
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
Yusuke Yamamoto
PDF
JetBrains IDEハンズオン
Yusuke Yamamoto
PDF
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Yusuke Yamamoto
「大学院のススメ」dentooLT #15.5
nkawahara
WACATE2018Summer BPP yoshitake
Nobuhiro Yoshitake
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
Yusuke Yamamoto
これからはじめるGit、GitHub #stapy
Yusuke Yamamoto
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
Yusuke Yamamoto
JetBrains IDEハンズオン
Yusuke Yamamoto
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Yusuke Yamamoto
More from Yusuke Yamamoto
(20)
PDF
Java Küche 2016 #JavaKueche
Yusuke Yamamoto
PDF
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
Yusuke Yamamoto
PDF
WebStormから始まる快適Web開発ワークフロー #html5jk
Yusuke Yamamoto
PDF
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
Yusuke Yamamoto
PDF
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Yusuke Yamamoto
PDF
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Yusuke Yamamoto
PDF
Twitter4jハンズオン 5/1 #twtr_hack
Yusuke Yamamoto
PDF
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
Yusuke Yamamoto
PDF
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Yusuke Yamamoto
PDF
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Yusuke Yamamoto
PDF
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Yusuke Yamamoto
PDF
貧乏人のHeroku活用術 #herokujp
Yusuke Yamamoto
PDF
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Yusuke Yamamoto
PDF
JavaScript時代のJava #kansumiB7 #kansumi
Yusuke Yamamoto
PDF
テンプレートエンジンの話 #jjug
Yusuke Yamamoto
PDF
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
Yusuke Yamamoto
PDF
HerokuでJava7 #herokujp #waza
Yusuke Yamamoto
PDF
2013年3月20日 Tech Compass #tecomp #きのこる
Yusuke Yamamoto
PDF
Twitter API1.1 #twtr_hack
Yusuke Yamamoto
PDF
Twitter Cards #twtr_hack
Yusuke Yamamoto
Java Küche 2016 #JavaKueche
Yusuke Yamamoto
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
Yusuke Yamamoto
WebStormから始まる快適Web開発ワークフロー #html5jk
Yusuke Yamamoto
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
Yusuke Yamamoto
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Yusuke Yamamoto
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Yusuke Yamamoto
Twitter4jハンズオン 5/1 #twtr_hack
Yusuke Yamamoto
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
Yusuke Yamamoto
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Yusuke Yamamoto
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Yusuke Yamamoto
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Yusuke Yamamoto
貧乏人のHeroku活用術 #herokujp
Yusuke Yamamoto
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Yusuke Yamamoto
JavaScript時代のJava #kansumiB7 #kansumi
Yusuke Yamamoto
テンプレートエンジンの話 #jjug
Yusuke Yamamoto
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
Yusuke Yamamoto
HerokuでJava7 #herokujp #waza
Yusuke Yamamoto
2013年3月20日 Tech Compass #tecomp #きのこる
Yusuke Yamamoto
Twitter API1.1 #twtr_hack
Yusuke Yamamoto
Twitter Cards #twtr_hack
Yusuke Yamamoto
Ad
Recently uploaded
(11)
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
20250729_Devin-for-Enterprise
Masaki Yamakawa
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
Ad
カジュアルにスレッドダンプ - @yusuke #javacasual
1.
カジュアルにスレッドダンプ 2015年10月16日 山本 裕介 @yusuke #javacasual
2.
山本 裕介 @yusuke •
アーチャー • 東京都国体代表2回 • 全日本選手権出場1回 • 都民体育大会 世田谷区代表1回 • 都民体育大会 板橋区代表3回 • 各種大会入賞、優勝多数
3.
山本 裕介 @yusuke •
BEA Systemsにて4年くらいテクニカルサポート • Fast Searchにて1年半くらいテクニカルサポート • RedHatにて2年くらいコンサルタント (火消し多し) →計7年半くらいトラブルシューティング
4.
クイズです 👻
5.
何をしているでしょう?
6.
答えは後ほど 👻
7.
" 皆さんに質問です
8.
" 日常的にスレッドダンプを解析している方
9.
" スレッドダンプを取得したことがある方
10.
" スレッドダンプって聞いたことある方
11.
" 例外スタックトレースを見れば 何が起きているのか大体検討がつく方
12.
スレッドダンプ よくわからん スレッドダンプ チョットデキル スレッドダンプの話 アーチェリーの話
13.
スタックトレースとは •プログラムを実行する際のコールス タックの一覧 •Javaはマルチスレッドで動くので、 スレッド毎にコールスタックがある • 現在主流は70m • 形式によっては最短5m、最長で90m 的までの距離
14.
コールスタック 実行結果: Hello world. Exception in
thread "main" java.lang.NullPointerException at GoodBye.goodbye(GoodBye.java:4) at HelloWorld.main(HelloWorld.java:4) • 中心から10点、9点、7点・・・0点 • 1試合72本、720点満点 採点
15.
例外スタックトレース から読めること 例外の種類、例外メッセージ 例外発生に至るコールスタック (クラス名、行数) アーチェリー場。意外にも都内に10箇 所以上ある。 どこでアーチェリーやるの? https://www.google.co.jp/maps/search/東京都+アーチェリー/@35.6690751,139.6614889,11.8z より
16.
例外スタックトレース を読んでみる Exception in thread
"main" java.lang.NullPointerException at HelloWorld.goodBye(HelloWorld.java:8) at HelloWorld.main(HelloWorld.java:4) • ざっと20∼30万 • でも練習は1回300円∼1000円程度 • イニシャルコスト高&ランニングコスト低 道具一式いくら? HelloWorldの8行目、goodBye内でNPEが発生 HelloWorldの4行目からgoodByeを呼び出している
17.
例外が発生しない場合の スタックトレース ・正攻法 ブレークポイントを設定してデバッグ 実行 • 筋力、体力、精神力が必要 • 1日144本射つ試合形式もある •
弓本体は2.5kgくらい • 最大限引いたところで35∼42ポンド 引っ張って 離すだけでしょ?
18.
例外が発生しない場合の スタックトレース ・力技 new Exception().printStackTrace(); (プロセスにアタッチは出来ないけど 再デプロイして状況を再現させられる) ゴテゴテ付いているの何? スタビライザー 振動を抑止してエイミング、 発射を安定させる 1∼4万円
19.
デバッガ使いましょうね サイト http://www.slideshare.net/yusukey/java-print-jjugccc-ccch4 サイト(照準) 照準を見て狙う 距離が遠くなるときは下に、 近くなるときは上に動かして 的の真ん中を狙えばいいようにする 2∼2万円
20.
よくあるトラブル • アプリのパフォーマンスが悪い • サービスが応答しない •
ボトルネック箇所がわからない • CPU使用率が異常に高い • ボランティアでサイバーディフェンス をしており、パフォーマンスプロファ イリングツールを購入する予算がな い リム こんな時にスレッドダンプ リム しなる部分。木材や、カーボンなどの 合成材 6∼10万円
21.
スレッドダンプを確認 ・スレッドダンプ 現在JVM内で稼働している各スレッド のスタックトレース。 ・アプリケーションの改修不要 ・デバッガのアタッチ不要 ・本番稼働中も取得可能 • アルミチューブにカーボンを巻いた 構造 • 軽くて丈夫 •
一本2千∼6千円 矢
22.
スレッドダンプの取得 ・スレッドダンプの取得 jstack PID (OS共通) kill
-3 PID (Linux / Unix / Mac) Ctrl + Break (Windows) ・プロセスIDの確認 $ jps -mlv $ ps -ef | grep java 矢 ノック 弦を挟む構造 接ぎ矢をしたときは (運が良いと)ここだけ壊れる ので好感できる
23.
jpsのオプション ・-m メインスレッドの引数を表示 ・-l (エル) メインクラスをフルパッケージで表示 ・-v JVMに指定しているオプションを表示 矢 羽 プラスチック製 矢飛びを安定させる
24.
スレッドダンプ 矢 ポイント いわゆる鏃(やじり) 重心を前に寄せて安定させる
25.
スレッドダンプ • なにげに毎週どこかしらで大会がある • いきなり「都大会」に出られる 大会
26.
クイズの答え
27.
スレッドダンプとは ・瞬間のJVMのスナップショット ・ • 一人でも練習できます • 当たると気持ちいい アーチェリーのいいとこ ・スナップショット1枚では遊んでいる のか仕事しているのかわからない
28.
JVMを解析するために ・スレッドダンプを複数回とる ・各スレッドの動きがわかる ・目安: 1秒間隔で3回とか • 実は接触しない •
弦を離す際、指により弦の軌道が波打つ ので矢も上から見ると波打つ 矢の羽は弓に接触する? http://hr-inoue.net/zscience/topics/bow/bow.html より
29.
スレッドダンプの解析 ・3回分のスレッド解析とか無理 ・そこで「侍」 • 弦が波打って弓に当たらない現象の こと • 波打たないと弓に当たって的中が悪 くなる •
波打ち過ぎると矢がブレて進むので やはり的中が悪くなる アーチェリーパラドックス http://samuraism.jp/samurai/ja/index.html チューニング大事
30.
侍のしてくれること ・間隔を空けてスレッドダンプを取得 ・スレッドダンプの可視化 →固まっているスレッド →遊んでいるスレッド →デッドロックしているスレッド • たくさんある • アーチェリーパラドックスの調整に はプランジャー チューニングポイント http://www.shibuya-online.com/
より
31.
侍の起動方法 ・ちょっと面倒 $ wget http://samuraism.jp/samurai/samurai-3.0.jar $
java -cp $JAVA_HOME/lib/tools.jar:samurai-3.0.jar samurai.swing.Samurai ・.app、.exeとしてパッケージ化予定 • 人口は少ないけど、上には上がいる ので大変 • でも「ある程度」までは狙いやすい かも? 簡単にオリンピックとか 出られるんじゃね?
32.
スレッドダンプ ・普段からカジュアルにとりましょう ・固まったら、応答遅くなったら kill -9 する前に
kill -3 • 区報とかチェックしてください • 初心者向け講習とかあります アーチェリーやってみたいんだけど 板橋区報より
33.
# 終わりです
Download