SlideShare a Scribd company logo
1 of 19
Linux Process Snapper の紹介
Dec, 2020
Twitter: yoheia@
Linux Process Snapper の作者
https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=2
Tanel Poder
db tech showcase で何度か来日したことも
Linux Process Snapper のコンセプト
https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=4
pSnapper は Python スクリプト
https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=14
pSnapper は 0x.tools のツール群の一つ
https://0x.tools/
pSnapper は Thread State Analysis
Snapper
pSnapper
Performance Insights
Oracle ASH
など
https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=5
Thread State とは
https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=11
Thread State Analysis に使うツール
https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=6
B.Gregg の Thread State Analysis Method
http://www.brendangregg.com/tsamethod.html
Brendan Gregg
• Netflix の Sr. Performance Architect
• Sun->Oracle->Joyent->Netflix
Performance Insights は TSA の発展型の ASH
https://www.slideshare.net/yoheiazekatsu/awrexcel/8
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.html
Kyle Hailey
Oracle、AWS や他にも様々なプロダクトで
ASH のコンセプトを実装
スレッド(セッション)の状態をサンプリングし、
その履歴を可視化。スレッドの状態より細やかに
Wait Event ベースで状態をサンプリング。
*ASH: Active Session History
ps で Thread State Analysis してみる
https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=9
pSnapper の実行例
https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=16
ビジュアライズする機能もリリース予定?
https://youtu.be/YEWp3O7Kem8?t=2767
デモ
# pgbench で PostgeSQL にクエリ実行
$ pgbench -r -c 8 -j 8 -t 100000 -U postgres -h localhost -d postgres -p 5432 > /dev/null 2>&1 &
# pSnapper でサンプリングする
$ sudo psn -G syscall,wchan
実行例
# dd を実行
$ sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
$ sudo dd if=/dev/xvda1 of=/dev/null bs=1M count=10000 &
# pSnapper でサンプリングする
$ sudo psn -G syscall,wchan,kstack
まとめ
まとめ
• Linux Process Snapper はアドホックなトラブルシューティングツール
• Python スクリプトおくだけで動く
• Thread State Analysis (サンプリング&集計)ができる
• 情報ソースは /proc
• 機能追加される計画なので、今後も期待
Appendix. 参考情報
• Linux Performance Analysis in 15 minutes
 https://www.slideshare.net/yoheiazekatsu/linux-performance-analysis-in-15-minutes
• Modern Linux Performance Tools for Application Troubleshooting
• https://www.slideshare.net/tanelp/modern-linux-performance-tools-for-application-troubleshooting
• Profiling Linux Activity for Performance and Troubleshooting
 https://www.youtube.com/watch?v=YEWp3O7Kem8
• 0x.tools
 https://0x.tools/
• tanelpoder - 0xtools (Github)
 https://github.com/tanelpoder/0xtools

More Related Content

Similar to Linux Process Snapper Introduction

Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
Windows® API Code Pack for Microsoft® .NET Framework
Windows® API Code Pack for Microsoft® .NET FrameworkWindows® API Code Pack for Microsoft® .NET Framework
Windows® API Code Pack for Microsoft® .NET FrameworkTadahiro Higuchi
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Yohei Yasukawa
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp CodereadingHiro Yoshioka
 
Batch processing and Stream processing by SQL
Batch processing and Stream processing by SQLBatch processing and Stream processing by SQL
Batch processing and Stream processing by SQLSATOSHI TAGOMORI
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 
初めてのプラグイン開発
初めてのプラグイン開発初めてのプラグイン開発
初めてのプラグイン開発ikikko
 
Janus @ Meetup Tokyo #12
Janus @ Meetup Tokyo #12Janus @ Meetup Tokyo #12
Janus @ Meetup Tokyo #12Lorenzo Miniero
 
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...Rescale Japan株式会社
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Etsuji Nakai
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境ast_j
 
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版VirtualTech Japan Inc.
 

Similar to Linux Process Snapper Introduction (20)

Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Windows® API Code Pack for Microsoft® .NET Framework
Windows® API Code Pack for Microsoft® .NET FrameworkWindows® API Code Pack for Microsoft® .NET Framework
Windows® API Code Pack for Microsoft® .NET Framework
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
 
20170124 linux basic_1
20170124 linux basic_120170124 linux basic_1
20170124 linux basic_1
 
NanoA
NanoANanoA
NanoA
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
Start-padrino
Start-padrinoStart-padrino
Start-padrino
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
Batch processing and Stream processing by SQL
Batch processing and Stream processing by SQLBatch processing and Stream processing by SQL
Batch processing and Stream processing by SQL
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
初めてのプラグイン開発
初めてのプラグイン開発初めてのプラグイン開発
初めてのプラグイン開発
 
Janus @ Meetup Tokyo #12
Janus @ Meetup Tokyo #12Janus @ Meetup Tokyo #12
Janus @ Meetup Tokyo #12
 
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
 
perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境
 
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
 

More from Yohei Azekatsu

CloudTrail ログの検索を爆速化してみた
CloudTrail ログの検索を爆速化してみたCloudTrail ログの検索を爆速化してみた
CloudTrail ログの検索を爆速化してみたYohei Azekatsu
 
Parquetはカラムナなのか?
Parquetはカラムナなのか?Parquetはカラムナなのか?
Parquetはカラムナなのか?Yohei Azekatsu
 
Linux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutesLinux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutesYohei Azekatsu
 
シンプルでシステマチックな Oracle Database, Exadata 性能分析
シンプルでシステマチックな Oracle Database, Exadata 性能分析シンプルでシステマチックな Oracle Database, Exadata 性能分析
シンプルでシステマチックな Oracle Database, Exadata 性能分析Yohei Azekatsu
 
シンプルでシステマチックな Linux 性能分析方法
シンプルでシステマチックな Linux 性能分析方法シンプルでシステマチックな Linux 性能分析方法
シンプルでシステマチックな Linux 性能分析方法Yohei Azekatsu
 
簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪Yohei Azekatsu
 
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishDbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishYohei Azekatsu
 
私がPerlを使う理由
私がPerlを使う理由私がPerlを使う理由
私がPerlを使う理由Yohei Azekatsu
 

More from Yohei Azekatsu (9)

CloudTrail ログの検索を爆速化してみた
CloudTrail ログの検索を爆速化してみたCloudTrail ログの検索を爆速化してみた
CloudTrail ログの検索を爆速化してみた
 
Parquetはカラムナなのか?
Parquetはカラムナなのか?Parquetはカラムナなのか?
Parquetはカラムナなのか?
 
Linux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutesLinux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutes
 
iostatの見方
iostatの見方iostatの見方
iostatの見方
 
シンプルでシステマチックな Oracle Database, Exadata 性能分析
シンプルでシステマチックな Oracle Database, Exadata 性能分析シンプルでシステマチックな Oracle Database, Exadata 性能分析
シンプルでシステマチックな Oracle Database, Exadata 性能分析
 
シンプルでシステマチックな Linux 性能分析方法
シンプルでシステマチックな Linux 性能分析方法シンプルでシステマチックな Linux 性能分析方法
シンプルでシステマチックな Linux 性能分析方法
 
簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪
 
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishDbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publish
 
私がPerlを使う理由
私がPerlを使う理由私がPerlを使う理由
私がPerlを使う理由
 

Linux Process Snapper Introduction

  • 1. Linux Process Snapper の紹介 Dec, 2020 Twitter: yoheia@
  • 2. Linux Process Snapper の作者 https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=2
  • 3. Tanel Poder db tech showcase で何度か来日したことも
  • 4. Linux Process Snapper のコンセプト https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=4
  • 5. pSnapper は Python スクリプト https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=14
  • 6. pSnapper は 0x.tools のツール群の一つ https://0x.tools/
  • 7. pSnapper は Thread State Analysis Snapper pSnapper Performance Insights Oracle ASH など https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=5
  • 9. Thread State Analysis に使うツール https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=6
  • 10. B.Gregg の Thread State Analysis Method http://www.brendangregg.com/tsamethod.html Brendan Gregg • Netflix の Sr. Performance Architect • Sun->Oracle->Joyent->Netflix
  • 11. Performance Insights は TSA の発展型の ASH https://www.slideshare.net/yoheiazekatsu/awrexcel/8 https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.html Kyle Hailey Oracle、AWS や他にも様々なプロダクトで ASH のコンセプトを実装 スレッド(セッション)の状態をサンプリングし、 その履歴を可視化。スレッドの状態より細やかに Wait Event ベースで状態をサンプリング。 *ASH: Active Session History
  • 12. ps で Thread State Analysis してみる https://speakerdeck.com/tanelpoder/troubleshooting-linux-activity-with-task-state-sampling?slide=9
  • 15. デモ # pgbench で PostgeSQL にクエリ実行 $ pgbench -r -c 8 -j 8 -t 100000 -U postgres -h localhost -d postgres -p 5432 > /dev/null 2>&1 & # pSnapper でサンプリングする $ sudo psn -G syscall,wchan
  • 16. 実行例 # dd を実行 $ sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" $ sudo dd if=/dev/xvda1 of=/dev/null bs=1M count=10000 & # pSnapper でサンプリングする $ sudo psn -G syscall,wchan,kstack
  • 18. まとめ • Linux Process Snapper はアドホックなトラブルシューティングツール • Python スクリプトおくだけで動く • Thread State Analysis (サンプリング&集計)ができる • 情報ソースは /proc • 機能追加される計画なので、今後も期待
  • 19. Appendix. 参考情報 • Linux Performance Analysis in 15 minutes  https://www.slideshare.net/yoheiazekatsu/linux-performance-analysis-in-15-minutes • Modern Linux Performance Tools for Application Troubleshooting • https://www.slideshare.net/tanelp/modern-linux-performance-tools-for-application-troubleshooting • Profiling Linux Activity for Performance and Troubleshooting  https://www.youtube.com/watch?v=YEWp3O7Kem8 • 0x.tools  https://0x.tools/ • tanelpoder - 0xtools (Github)  https://github.com/tanelpoder/0xtools

Editor's Notes

  1. B.Gregg と並んでリスペクトしているトラブルシューター B.Gregg 同様に理論と実践を持ち合わせ、体系化してシステマチックなノウハウを提供してくれている
  2. 最近、Systems Performance の2nd Edition を出した、B.Gregg のサイトや書籍でも TSA の解説がある。
  3. K
  4. K
  5. K
  6. K
  7. K
  8. K