topコマンドやdstatコマンドで現在のシステム稼働状況を確認できますが、これらのコマンドは基本リアルタイムでの監視になります。
なのでSSHなどでログインできる状態でないと使えません。
一方で、sysstat(sarコマンド)はcronを使って10分ごとにシステム状況を書き出して保存するため、仮にシステムが無反応になってしまっても、再起動後にその頃の状況がどうなっているか確認できます。
で、さっそく確認してみました。
sysstatは日付ごとにログファイル(バイナリ)を作成するので、lessなどでログファイルを閲覧する事ができません。
これらのログを見るにはsarコマンドを使います。
sarコマンドに閲覧したいログファイルを指定してあげればいいわけです。
では実際、昨日(17日)の状況を確認してみる事にします。
# sar -f /var/log/sa/sa17 | less
00時00分02秒 CPU %user %nice %system %iowait %steal %idle
00時10分01秒 all 2.07 0.00 0.30 2.92 0.00 94.71
00時20分02秒 all 2.07 0.00 0.27 2.39 0.00 95.27
(中略)
08時00分03秒 all 4.32 0.00 0.55 4.58 0.00 90.55
08時10分34秒 all 13.67 0.00 2.88 46.51 0.00 36.94
08時21分00秒 all 5.62 0.00 4.12 90.26 0.00 0.00
平均値: all 3.90 0.00 0.66 7.42 0.00 88.01
08時55分26秒 LINUX RESTART
09時00分02秒 CPU %user %nice %system %iowait %steal %idle
09時10分01秒 all 5.00 0.00 0.41 0.92 0.00 93.66
09時20分02秒 all 4.62 0.00 0.39 1.83 0.00 93.17
09時30分02秒 all 6.10 0.00 0.72 4.79 0.00 88.39
(中略)
16時20分03秒 all 10.84 0.00 2.08 21.53 0.00 65.54
16時30分04秒 all 6.35 0.00 1.26 10.57 0.00 81.82
16時51分00秒 all 5.51 0.00 4.11 89.26 0.00 1.12
平均値: all 6.10 0.00 1.10 12.16 0.00 80.64
23時24分05秒 LINUX RESTART
23時30分02秒 CPU %user %nice %system %iowait %steal %idle
23時40分01秒 all 7.97 0.00 0.71 2.40 0.00 88.92
こんな風に表示されます。
ここで気がつくのは、Linuxがリスタートされる前後。リスタートってのは要するに僕が物理的にマシンの電源を落として再起動させた状態ですが、その直前を見ると、iowait(平たく言えばディスクへの読み書き)が軒並み90%近くになっているんです。
その状態から強制リセットをかけるまではログがとられていない(つまりログをとることもできないくらいシステムがビジーってこと?)ことから、どうやらこのディスクへの読み書きがシステム全体を無反応にしていると考えて問題なさそう。
しかし、一体なんのプロセスが・・・?
ま、とりあえず原因究明への一歩を踏み出せた・・・ような気がしないでもないので、もうちょっとこの話題で引っ張って行こうと思っています。
なかなかRVFがらみの話題にならなくてよくないなぁ。
でも、近日中に2りんかんさんに行って、RVF関係のパーツを調達してきますからね!