WEB+DB PRESS Vol.65|gihyo.jp … 技術評論社.
WEB+DB PRESS の特集1「WEBエンジニアが知るべきインフラの基礎知識」が非常にまとまってて良かった。
闇雲にtopコマンドとかネットで調べながら調査してたので今後のためにもメモ。
ロードアベレージ(忙しさの度合い)
uptimeコマンドを使って見る。
[root@suusuke ~]# uptime 22:27:30 up 202 days, 18:48, 1 user, load average: 0.07, 0.15, 0.08
0.07という数字は処理を実行したいが、何かしらの処理で実行できなくて待たされている状態のプロセス数
何かしらの要因とは?
- 他のプロセスにCPUが使われていて、空くのを待っている状態(CPU使用率)
- ディスクに読み書き要求を発行してその結果を待っている状態(I/O待ち率)
CPU使用率とI/O待ち状態
sarコマンドを使って見る。
インストール
[root@suusuke ~]# sudo yum install sysstat [root@suusuke ~]# sudo service sysstat start
CPU使用率のレポート(-u)を3秒ごとに10回表示して終了する。
[root@suusuke ~]# sar -u 3 10 Linux 2.6.18-194.3.1.el5.028stab069.6 2011年10月24日 22時26分12秒 CPU %user %nice %system %iowait %steal %idle 22時26分15秒 all 0.00 0.00 0.00 0.00 0.00 100.00 22時26分18秒 all 0.17 0.00 0.00 0.00 0.00 99.83 22時26分21秒 all 0.00 0.00 0.00 0.00 0.00 100.00 22時26分24秒 all 0.00 0.00 0.00 0.00 0.00 100.00 22時26分27秒 all 0.00 0.00 0.00 0.00 0.00 100.00 22時26分30秒 all 0.00 0.00 0.00 0.00 0.00 100.00 22時26分33秒 all 0.00 0.00 0.00 0.00 0.00 100.00 22時26分36秒 all 0.00 0.00 0.00 0.00 0.00 100.00 22時26分39秒 all 9.00 0.00 0.33 0.50 0.00 90.17 22時26分42秒 all 0.00 0.00 0.00 0.00 0.00 100.00 平均値: all 0.92 0.00 0.03 0.05 0.00 99.00
- %user
- ユーザ空間でCPUが使われた時間の割合
- %nice
- 優先度を変更されたプロセスにより、ユーザ空間でCPUが使われた時間の割合
- %system
- カーネル空間でCPUが使われた時間の割合
- %iowait
- CPUがディスクI/Oの結果を待っていた時間の割合
- %steal
- 仮想サーバがCPUを使って待たされていた時間の割合
- %idle
- ディスクI/O街以外で、CPUが何もしないで待っていた時間の割合
%systemも%userも低く、%iowaitが高い場合
物理搭載メモリ量を超えてスワップが大量に発生している可能性がある。
sar -Wでスワップインとスワップアウトの状況
freeでシステム全体のメモリ使用状況
topでメモリ使用率順でソート後メモリを消費しているプロセスを特定する
%systemが高く、%iowaitも高い場合
「I/O待ち状態」となっている。
psでSTATの項目がDのものを探し特定する。
Dは割り込み不可能な待機状態を意味する。
%userが高い場合
「CPU使用率」が高い。
topでCPU使用率の高い順にソートして特定する。
また、psでプロセスの情報を見る。
[root@suusuke ~]# top top - 22:33:23 up 202 days, 18:54, 1 user, load average: 0.20, 0.11, 0.07 Tasks: 26 total, 1 running, 25 sleeping, 0 stopped, 0 zombie Cpu(s): 0.2%us, 0.0%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2097152k total, 272144k used, 1825008k free, 0k buffers Swap: 0k total, 0k used, 0k free, 0k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND