久々にパフォーマンス本③

今回はいよいよツールについて

 

# ツールの種類

4種類

カウンタ/トレーシング/プロファイリング/モニタリング

 

# カウンタ

## システム全体を対象とするカウンタ

各ツールの出力のうち最初の1行はシステムが動き始めてからの平均値である

カウンタの利用には、コストはほとんど発生しない

 

vmstat:仮想メモリ、 物理メモリのシステム全体の統計情報

f:id:syachineko:20211016233958p:plain

 

mpstat:CPUごとの利用状況

f:id:syachineko:20211016234304p:plain

 

iostat:ディスクI/Oの使用状況

f:id:syachineko:20211016234407p:plain

 

netstat:ネットワークインタフェースの統計

f:id:syachineko:20211016234657p:plain

 

sar:様々な統計

色々なオプションがあるらしい

 

## プロセスごとのカウンタ

ps:プロセスステータス、メモリやCPUの使用状況など

f:id:syachineko:20211016234944p:plain

 

top:CPUの使用状況などのうち、特定の統計でソートしてトップを表示する

f:id:syachineko:20211016235042p:plain

 

pmap:使用統計を伴う形でプロセスのメモリセグメントのリストを表示する

f:id:syachineko:20211016235241p:plain



# トレーシング

データをキャプチャする必要があるため、利用するためにCPUにオーバーヘッドをかけたり、保存するためにストレージを必要としたりする

 

## システム全体のトレーシング

tcpdump:ネットワークパケットのトレーシング

blktrace:ブロックI/Oのトレーシング

iosnoop:ブロックI/Oのトレーシング

execsnoop:新しいプロセスのトレーシング

dtruss:システム全体のバッファリングされたシステムコールのトレーシング

DTrace:カーネル内部のトレーシングと静的/動的トレーシングを使った任意のリソースの利用状況の表示

SystemTapカーネル内部のトレーシングと静的/動的トレーシングを使った任意のリソースの利用状況の表示

perf:静的/動的プローブのトレーシング

 

## プロセスごとのトレーシング

strace:Linuxベースシステム用のシステムコールトレーシング

gdb:ソースレベルデバッガ

 

# プロファイリング

CPUの使用状況といった、ターゲットの挙動のサンプルやスナップショットを集めて、ターゲットの特徴を把握するためのもの

 

## システム全体、プロセスごとのプロファイリング

oprofile:Linuxシステムのプロファイリング

perf:LinuxパフォーマンスツールキットのLPE

DTrace:プログラムによるプロファイリング

SystemTap:プログラムによるプロファイリング

cachegrind:ハードウェア情報をプロファイリングできる

Intel VTune Amplifier XE:LinuxWindowsのプロファイリング

 

 

# モニタリング

sar

f:id:syachineko:20211017000705p:plain



 

以上。