OSリソースを取得してみよう(続き)
vmstat - メモリの情報が得られる点で重要なコマンド
実行コマンド
vmstat 10 | awk '{print(strftime("%Y/%m/%d %H:%M:%S"),$0);fflush();}'
実行結果テキスト表示
2015/10/26 13:13:57 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- 2015/10/26 13:13:57 r b swpd free buff cache si so bi bo in cs us sy id wa st 2015/10/26 13:13:57 1 0 3084 109320 124712 628832 0 0 0 28 0 0 0 0 100 0 0 2015/10/26 13:14:07 0 0 3084 108948 124712 629000 0 0 0 100 112 113 0 0 100 0 0 2015/10/26 13:14:17 0 0 3084 108940 124696 628976 0 0 0 108 111 113 0 0 100 0 0 2015/10/26 13:14:27 1 0 3084 109072 124712 629000 0 0 0 102 95 113 0 0 100 0 0
vmstatはCPU、メモリ、ストレージなど幅広い情報を薄く広く出すコマンドです。CPUやストレージの情報は粒度が粗いため利用しませんが、メモリの情報が得られる点が重要です。 ただし、メモリ情報はvmstatだけでは不足することがあるため、/proc/meminfoの情報も必要になります。
/proc/meminfoを参照
while [ 1 ]
do
cat /proc/meminfo|awk '{print(strftime("%Y/%m/%d %H:%M:%S"),$0);fflush();}'
sleep 10
done
実行結果
2015/10/26 15:08:59 MemTotal: 1011932 kB 2015/10/26 15:08:59 MemFree: 108196 kB 2015/10/26 15:08:59 Buffers: 177340 kB 2015/10/26 15:08:59 Cached: 516408 kB 2015/10/26 15:08:59 SwapCached: 332 kB 2015/10/26 15:08:59 Active: 629792 kB 2015/10/26 15:08:59 Inactive: 124720 kB 2015/10/26 15:08:59 Active(anon): 47732 kB 2015/10/26 15:08:59 Inactive(anon): 57004 kB 2015/10/26 15:08:59 Active(file): 582060 kB 2015/10/26 15:08:59 Inactive(file): 67716 kB 2015/10/26 15:08:59 Unevictable: 0 kB 2015/10/26 15:08:59 Mlocked: 0 kB 2015/10/26 15:08:59 SwapTotal: 2031608 kB 2015/10/26 15:08:59 SwapFree: 2028524 kB 2015/10/26 15:08:59 Dirty: 52 kB 2015/10/26 15:08:59 Writeback: 0 kB 2015/10/26 15:08:59 AnonPages: 60552 kB 2015/10/26 15:08:59 Mapped: 50252 kB 2015/10/26 15:08:59 Shmem: 43972 kB 2015/10/26 15:08:59 Slab: 118652 kB 2015/10/26 15:08:59 SReclaimable: 90064 kB 2015/10/26 15:08:59 SUnreclaim: 28588 kB 2015/10/26 15:08:59 KernelStack: 2440 kB 2015/10/26 15:08:59 PageTables: 6860 kB 2015/10/26 15:08:59 NFS_Unstable: 0 kB 2015/10/26 15:08:59 Bounce: 0 kB 2015/10/26 15:08:59 WritebackTmp: 0 kB 2015/10/26 15:08:59 CommitLimit: 2537572 kB 2015/10/26 15:08:59 Committed_AS: 1084120 kB 2015/10/26 15:08:59 VmallocTotal: 34359738367 kB 2015/10/26 15:08:59 VmallocUsed: 342908 kB 2015/10/26 15:08:59 VmallocChunk: 34359380056 kB 2015/10/26 15:08:59 HardwareCorrupted: 0 kB 2015/10/26 15:08:59 AnonHugePages: 30720 kB 2015/10/26 15:08:59 HugePages_Total: 0 2015/10/26 15:08:59 HugePages_Free: 0 2015/10/26 15:08:59 HugePages_Rsvd: 0 2015/10/26 15:08:59 HugePages_Surp: 0 2015/10/26 15:08:59 Hugepagesize: 2048 kB 2015/10/26 15:08:59 DirectMap4k: 9920 kB 2015/10/26 15:08:59 DirectMap2M: 1030144 kB
iostat - ストレージの読み書きや待機キューなどの情報を出力
実行コマンド
iostat -d -mx 10 | awk '{print(strftime("%Y/%m/%d %H:%M:%S"),$0);fflush();}'
実行結果テキスト表示
2015/10/26 13:15:43 Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2015年10月26日 _x86_64_ (2 CPU) 2015/10/26 13:15:43 2015/10/26 13:15:43 Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util 2015/10/26 13:15:43 sda 0.00 13.55 0.00 0.67 0.00 0.06 167.51 0.01 11.82 10.08 0.68 2015/10/26 13:15:43 dm-0 0.00 0.00 0.00 14.14 0.00 0.06 8.00 0.13 9.38 0.48 0.68 2015/10/26 13:15:43 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 20.05 1.89 0.00 2015/10/26 13:15:43 dm-2 0.00 0.00 0.00 0.00 0.00 0.00 8.04 0.00 1056.13 0.49 0.00 2015/10/26 13:15:43 2015/10/26 13:15:53 Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util 2015/10/26 13:15:53 sda 0.00 24.10 0.00 0.50 0.00 0.10 392.00 0.00 8.00 8.00 0.40 2015/10/26 13:15:53 dm-0 0.00 0.00 0.00 24.50 0.00 0.10 8.00 0.15 6.14 0.16 0.40 2015/10/26 13:15:53 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2015/10/26 13:15:53 dm-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2015/10/26 13:15:53
iostatは、ストレージに対する読み込み/書き込みのスループットや、待機キューの状態などの情報を出力します。こちらもデバイスごとに情報が出力されるため、一度の実行でも出力が複数行になります。
sar - ネットワーク入出力の転送量などを出力
実行コマンド
sar -n DEV 10 | awk '{print(strftime("%Y/%m/%d %H:%M:%S"),$0);fflush();}'
実行結果テキスト表示
2015/10/26 13:16:57 Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2015年10月26日 _x86_64_ (2 CPU) 2015/10/26 13:17:07 2015/10/26 13:17:07 13時16分57秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 2015/10/26 13:17:07 13時17分07秒 lo 0.60 0.60 0.19 0.19 0.00 0.00 0.00 2015/10/26 13:17:07 13時17分07秒 eth0 1.30 0.80 0.11 0.10 0.00 0.00 0.00 2015/10/26 13:17:07 13時17分07秒 wlan0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2015/10/26 13:17:17 2015/10/26 13:17:17 13時17分07秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 2015/10/26 13:17:17 13時17分17秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2015/10/26 13:17:17 13時17分17秒 eth0 0.60 0.10 0.09 0.06 0.00 0.00 0.00 2015/10/26 13:17:17 13時17分17秒 wlan0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
ネットワークの情報もインタフェースごとに出力されるため、一度の実行で複数行が出力されます。入出力の転送量が主な情報です。
ここで紹介したどのコマンドも10秒間隔で情報を出力し、[Ctrl-C]キーを押す(ブレイクする)まで出力を続けます[4]。 また、どのコマンドも非常に多くの情報が出力されています。これらの出力結果をもとにした解析方法については、次回で解説していきたいと思います。
注
[4]: 引数を追加して、出力回数を制限することもできます。
