久々にパフォーマンス本③
今回はいよいよツールについて
# ツールの種類
4種類
カウンタ/トレーシング/プロファイリング/モニタリング
# カウンタ
## システム全体を対象とするカウンタ
各ツールの出力のうち最初の1行はシステムが動き始めてからの平均値である
カウンタの利用には、コストはほとんど発生しない
vmstat:仮想メモリ、 物理メモリのシステム全体の統計情報
mpstat:CPUごとの利用状況
iostat:ディスクI/Oの使用状況
netstat:ネットワークインタフェースの統計
sar:様々な統計
色々なオプションがあるらしい
## プロセスごとのカウンタ
ps:プロセスステータス、メモリやCPUの使用状況など
top:CPUの使用状況などのうち、特定の統計でソートしてトップを表示する
pmap:使用統計を伴う形でプロセスのメモリセグメントのリストを表示する
# トレーシング
データをキャプチャする必要があるため、利用するために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:LinuxとWindowsのプロファイリング
# モニタリング
sar
以上。