地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

sarでLinuxサーバ監視

サーバが重い!なんだなんだ!ってなった時に使えるコマンド

vmstatやiostat、topやpsやらLinuxのメトリクスをとるコマンドはたくさんある中でも何となくこれがやばい!って調査の目処に便利。 メトリクス監視してないサーバとかで状態をサクッと見れる。

負荷試験とかで一気に色々な値を取得しなければならないなどの用途の場合はdstatがおすすめです。

qiita.com

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数