Submit Search
Upload
カジュアルにスレッドダンプ - @yusuke #javacasual
•
10 likes
•
6,729 views
Yusuke Yamamoto
Follow
スタックトレースの基本 スレッドダンプの基本 アーチェリーの基本
Read less
Read more
Technology
Report
Share
Report
Share
1 of 33
Download now
Download to read offline
Recommended
「大学院のススメ」dentooLT #15.5
「大学院のススメ」dentooLT #15.5
nkawahara
WACATE2018Summer BPP yoshitake
WACATE2018Summer BPP yoshitake
Nobuhiro Yoshitake
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
Yusuke Yamamoto
これからはじめるGit、GitHub #stapy
これからはじめるGit、GitHub #stapy
Yusuke Yamamoto
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
Yusuke Yamamoto
JetBrains IDEハンズオン
JetBrains IDEハンズオン
Yusuke Yamamoto
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Yusuke Yamamoto
Recommended
「大学院のススメ」dentooLT #15.5
「大学院のススメ」dentooLT #15.5
nkawahara
WACATE2018Summer BPP yoshitake
WACATE2018Summer BPP yoshitake
Nobuhiro Yoshitake
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
Yusuke Yamamoto
これからはじめるGit、GitHub #stapy
これからはじめるGit、GitHub #stapy
Yusuke Yamamoto
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
Yusuke Yamamoto
JetBrains IDEハンズオン
JetBrains IDEハンズオン
Yusuke Yamamoto
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Yusuke Yamamoto
Java Küche 2016 #JavaKueche
Java Küche 2016 #JavaKueche
Yusuke Yamamoto
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
Yusuke Yamamoto
WebStormから始まる快適Web開発ワークフロー #html5jk
WebStormから始まる快適Web開発ワークフロー #html5jk
Yusuke Yamamoto
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
Yusuke Yamamoto
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Yusuke Yamamoto
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Yusuke Yamamoto
Twitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hack
Yusuke Yamamoto
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
Yusuke Yamamoto
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Yusuke Yamamoto
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Yusuke Yamamoto
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Yusuke Yamamoto
貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp
Yusuke Yamamoto
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Yusuke Yamamoto
JavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumi
Yusuke Yamamoto
テンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjug
Yusuke Yamamoto
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
Yusuke Yamamoto
HerokuでJava7 #herokujp #waza
HerokuでJava7 #herokujp #waza
Yusuke Yamamoto
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる
Yusuke Yamamoto
Twitter API1.1 #twtr_hack
Twitter API1.1 #twtr_hack
Yusuke Yamamoto
Twitter Cards #twtr_hack
Twitter Cards #twtr_hack
Yusuke Yamamoto
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
More Related Content
More from Yusuke Yamamoto
Java Küche 2016 #JavaKueche
Java Küche 2016 #JavaKueche
Yusuke Yamamoto
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
Yusuke Yamamoto
WebStormから始まる快適Web開発ワークフロー #html5jk
WebStormから始まる快適Web開発ワークフロー #html5jk
Yusuke Yamamoto
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
Yusuke Yamamoto
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Yusuke Yamamoto
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Yusuke Yamamoto
Twitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hack
Yusuke Yamamoto
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
Yusuke Yamamoto
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Yusuke Yamamoto
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Yusuke Yamamoto
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Yusuke Yamamoto
貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp
Yusuke Yamamoto
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Yusuke Yamamoto
JavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumi
Yusuke Yamamoto
テンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjug
Yusuke Yamamoto
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
Yusuke Yamamoto
HerokuでJava7 #herokujp #waza
HerokuでJava7 #herokujp #waza
Yusuke Yamamoto
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる
Yusuke Yamamoto
Twitter API1.1 #twtr_hack
Twitter API1.1 #twtr_hack
Yusuke Yamamoto
Twitter Cards #twtr_hack
Twitter Cards #twtr_hack
Yusuke Yamamoto
More from Yusuke Yamamoto
(20)
Java Küche 2016 #JavaKueche
Java Küche 2016 #JavaKueche
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
WebStormから始まる快適Web開発ワークフロー #html5jk
WebStormから始まる快適Web開発ワークフロー #html5jk
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Twitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hack
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
JavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumi
テンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjug
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring
HerokuでJava7 #herokujp #waza
HerokuでJava7 #herokujp #waza
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる
Twitter API1.1 #twtr_hack
Twitter API1.1 #twtr_hack
Twitter Cards #twtr_hack
Twitter Cards #twtr_hack
Recently uploaded
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Recently uploaded
(10)
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
カジュアルにスレッドダンプ - @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 now