サーバが重い!なんだなんだ!ってなった時に使えるコマンド
vmstatやiostat、topやpsやらLinuxのメトリクスをとるコマンドはたくさんある中でも何となくこれがやばい!って調査の目処に便利。 メトリクス監視してないサーバとかで状態をサクッと見れる。
負荷試験とかで一気に色々な値を取得しなければならないなどの用途の場合はdstatがおすすめです。
usage
$ sar [...options] <interval> <count> -f <saXX file>
メモリ使用状況
ページキャッシュやらバッファキャッシュに関しては実装内容について都度manを読む必要がある
$ sar -r 00:00:00 kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached kbswpfree kbswpused %swpused 00:10:00 220216 3875156 94.62 0 289288 1707500 2024592 72536 3.46 00:20:00 215180 3880192 94.75 0 289312 1707672 2024592 72536 3.46 00:30:00 214552 3880820 94.76 0 289340 1707804 2024592 72536 3.46 # kbmemfree: 物理メモリの空き容量 # kbmemused: 使用中の物理メモリ量 # %memused: 物理メモリ使用率 # kbbuffers: カーネル内のバッファとして使用されている物理メモリの容量 # kbcached: カーネル内のキャッシュ用メモリとして使用されている物理メモリの容量 # kbswpfree: スワップ領域の空き容量 # kbswpused: 使用中のスワップ領域の容量 # %swpused: スワップ領域の使用率
CPU使用率
$ sar -P ALL 01:17:35 AM CPU %user %nice %system %iowait %steal %idle 01:17:36 AM all 0.00 0.00 0.00 0.00 0.00 100.00 01:17:36 AM 0 0.00 0.00 0.00 0.00 0.00 100.00 01:17:36 AM 1 0.00 0.00 0.00 0.00 0.00 100.00 # %user:CPUがユーザモードにあった時間の割合 # %system:CPUがカーネルモードにあった時間の割合 # %iowait:CPUがIO待ちをしていた時間の割合 # %idle:CPUがアイドル状態にあった時間の割合
スワップ
$ sar -S 01:16:32 AM kbswpfree kbswpused %swpused kbswpcad %swpcad 01:16:33 AM 2097148 0 0.00 0 0.00 01:16:34 AM 2097148 0 0.00 0 0.00
ディスク負荷
$ sar -d 01:15:54 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 01:15:55 AM vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 01:15:55 AM sr1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 # tps:1秒間あたりのI/O転送回数 # td_sec/s:1秒間あたりに読み込みを行ったセクター数 # wr_sec/s:1秒間あたりに書き込みを行ったセクター数 # await:I/O応答時間の平均 # %util:ディスクの使用率(I/O処理をしていてビジーだった時間の割合)
ネットワーク
$ sar -n DEV 1 01:15:29 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 01:15:30 AM eth0 19.00 0.00 2.27 0.00 0.00 0.00 0.00 01:15:30 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 # rxpck/s:1秒間あたりの受信パケット数 # txpck/s:1秒間あたりの送信パケット数 # rxkB/s:1秒間あたりの受信kB数 # txkB/s:1秒間あたりの送信kB数