入門監視の、 8章 サーバ監視
から抜粋。
https://www.oreilly.co.jp/books/9784873118642/
top: cpu 使用率の取得
cpu使用率の取得に役立つ。
使用率を判断するためには、ユーザ(user, us)、システム(system, sy)、優先度付きプロセス(niced processes, ni)、ハードウェア割り込み(hardware interrupts, hi)、ソフトウェア割り込み(software interrupts, si) を足し合わせた結果。
$ top
top - 15:52:01 up 77 days, 13:55, 2 users, load average: 0.04, 0.04, 0.01
Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.5%us, 0.8%sy, 0.0%ni, 95.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 15845132k total, 14394780k used, 1450352k free, 153996k buffers
Swap: 0k total, 0k used, 0k free, 8783084k cached
free: - メモリ使用量・空き容量の取得
システムの物理メモリとスワップメモリの使用量、空き容量を表示する。
デフォルトの出力はKB単位。出力単位を -m
(MB単位)や -g
(GB単位)などで指定できます。 -h
を選ぶと、空気を読んで出力してくれる。
$ free -m
total used free shared buffers cached
Mem: 15473 14588 885 0 150 9073
-/+ buffers/cache: 5364 10109
Swap: 0 0 0
buffers と cached について
buffers
はディスクの中で最近アクセスされた領域のファイルシステムメタデータを保存している。
cached
は最近アクセスされたファイルコンテンツを保存している。
2行目(-/+ buffers/cache:) について
この行はメモリ使用率の測定に便利。
used
は buffers
と cached
を 引いた もの、
free
は buffers
と cached
を を 足した ものを表す。
システムにメモリを追加すべきかを判断するときにはこの行を見る。
3行目(Swap)について
そもそものスワップ領域についてはこちらを参照。
https://begi.net/read/base/09.html
システムにスワップパーティションやファイルがあるならこの値を追跡する。
スワップ使用量が増加した時のアラートは、アプリケーションがメモリに敏感な場合にメモリ使用量が増加していることを示す重要な指標になる。
iostats: - ディスクパフォーマンスを対話的に見る
iostats
コマンドはディスクパフォーマンスを対話的に見ることができる。
$ iostat -x
Linux 4.9.77-31.58.amzn1.x86_64 (見せられないよ) 05/15/2019 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.07 0.00 0.14 0.05 0.00 98.74
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
nvme0n1 0.00 2.07 0.01 4.06 1.75 1174.84 289.14 0.07 16.19 1.14 0.46
await
はディスクが処理を行うようリクエストを発行するのにかかった平均時間。
%util
はディスク使用量を示しており、この値は100%以下に保ちたいところ。
uptime: ロードアベレージを見る
ロードアベレージ(load)は、CPUに処理してもらうのを待っているプロセエスがいくつあるのかの指標。1分の平均、5分の平均、15分の平均の3つの値で表される。
$ uptime
18:55:55 up 77 days, 16:59, 1 user, load average: 0.00, 0.02, 0.00
コアあたりのロードが1.0なのは許容範囲。
15分平均のロードが500を超えていても顧客が問題なく利用できるシステムも存在するので、何の影響もなければ、ロードが高いのは問題にはならない。
ただし、ロードアベレージは代理指標(proxy metric)として役立つという例外がある。つまり異常に高いロードアベレージは、他の問題の存在を示すことがある(そうでない場合もある)ということ。
感想
こういった生々しい指標を確認できるコマンドを知っていることは非常に重要だとおもう。