CPU使用率を調べる

■sar -u
 ⇒%userが高い場合:ユーザプログラムがボトルネック
 ⇒%systemが高い場合:カーネル空間の処理に時間を取られている
  ⇒I/O待ちでCPU時間を消費しているか、大きいプロセスをforkしまくっている
 ⇒%userも%systemも低いのに%iowaitが高い場合:スワップが発生している

■sar -r
kbmemfree 物理メモリの空き容量
kbmemused 使用中の物理メモリ量
memused 物理メモリ使用率
kbbuffers カーネル内のバッファとして使用されている物理メモリの容量
kbcached カーネル内のキャッシュ用メモリとして使用されている物理メモリの容量
kbswapfree スワップ領域の空き容量
kbswpused 使用中のスワップ領域の容量

■mpstat 監視間隔 監視回数
⇒オプション
-P :特定のCPUの指定。はCPU番号
-P ALL:すべてのCPUの指定

CPU CPU番号。ALLの場合は、全CPUの平均値であることを示す。
%user ユーザレベル(アプリケーション)のCPU使用率
%nice 優先度(ナイス値)によるユーザーレベルのCPU使用率
%system システムレベル(kernel)のCPU使用率
%iostat ディスクi/o競合によるCPU待機時間割合
%irq CPUの割り込み実行時間割合
%soft CPUのソフトウェア割り込み実行時間割合
%idle CPUのアイドル時間割合(ディスクi/o待機時間はのぞく)
Intr/s 1秒あたりの平均割り込み数

■vmstat 監視間隔 監視回数
procs
r CPUを割り当て中もしくは割り当て可能なプロセス数
b I/O待ちでスリープ状態にある(割り込みを禁止している)プロセス数(0であることが望ましい)
w スワップアウトされている、実行可能なプロセス数
memory
swpd 使用中の仮想メモリ容量(KB)
free 空きメモリ容量(KB)
buff バッファキャッシュに使用されているメモリ容量(KB)
cache ページキャッシュとして使用されているメモリ容量(KB)
swap
si ディスクからスワップインしたメモリ容量(Kbytes/s)
so ディスクにスワップアウトしたメモリ容量(Kbytes/s)
io
bi ブロックデバイスから受け取った(Read)ブロック(blocks/sec)
bo ブロックデバイスに送られた(Write)ブロック(blocks/sec)
system
in 1秒当たりの割り込みの回数(クロックの割り込みも含む)
cs 1秒当たりのコンテキストスイッチの回数
cpu
us ユーザーが使用したCPUの割合(%)
sy システムが使用したCPUの割合(%)
id アイドル時間(CPUが何も処理せずに待っていた時間)の割合 ※I/O待ちは含まない(%)
wa IOの待ち時間

 ⇒最初の行は統計情報なので無視する
 ⇒swap の動作は vmstat 30 で si と so の項を調べる
  ⇒si が定常的にあるのはメモリの余裕は少ないがswapがうまく働いている事を意味するから, あまり問題にはならない
  ⇒siと同時にso の量が多い状態が定常的に続くなら作業用メモリの不足を疑う
 ⇒ケーススタディ
  ⇒r が高くCPU使用率も高い場合:CPUの処理待ち(CPUパワー不足)
  ⇒si so が高い場合:搭載しているメモリの不足
  ⇒b のプロセスが多くCPU負荷が高い場合:I/O待ちをしているプロセスが多く存在する
   ⇒同時にsi so が高い場合は、メモリが不足したためにSWAP領域を使ったことになる
    ⇒この時はメモリ増強が先決

■ps aux |grep USER && ps aux |grep php
USER 実行ユーザ
PID プロセスID
%CPU CPU時間と実際に処理した時間の比率
%MEM 実メモリの使用量
VSZ 使用している仮想メモリサイズ(kbytes単位)
RSS 使用している物理(スワップされていない)メモリサイズ(kbytes単位)
STAT 別表参照
START 開始時刻
COMMAND 実行しているコマンド

関連記事

コメントは利用できません。

ページ上部へ戻る