Iostatが100%ビジー待機を示しているが、CPUが完全にアイドル状態であるとはどういう意味ですか?私のアプリケーションはしばらく実行された後、約10〜20秒間定期的にこの状態になります。
これは、Solaris10でのトランザクション処理C++アプリです。
IO stat output:
extended device statistics cpu
device r/s w/s kr/s kw/s wait actv svc_t %w %b us sy wt id
c0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 0 0 100
sd1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
c1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
c6 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0 100
sd19 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd19.fp2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd19.fp4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd21 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd22 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd23 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0 100
sd24 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd26 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd27 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
nfs1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
vmstat出力:
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 s3 in sy cs us sy id
0 0 0 10842364 33093436 30 188 0 0 0 0 65 -0 2 3 -0 1327 843 709 0 1 99
0 0 0 3406728 28181464 71 3601 0 0 0 0 0 0 0 0 0 1372 23009 1584 4 0 96
0 0 0 2702996 28030080 0 740 0 0 0 0 0 0 0 0 0 1414 15002 2065 6 0 93
0 0 0 2699448 28016628 0 3 0 0 0 0 0 0 0 0 0 1747 3012 2193 9 1 90
0 0 0 2691728 28009844 0 1 0 0 0 0 0 0 10 10 0 2315 1300 2877 2 0 97
0 1 0 2679788 27957836 0 5033 0 0 0 0 0 0 1 1 0 1895 1945 2658 10 0 90
0 2 0 2654188 27907196 0 0 0 0 0 0 0 0 1 1 0 3566 3788 5495 2 0 98
これは、負荷の原因がIO待機であり、CPUの競合ではないことを意味します。したがって、ハードドライブへのアクセス、NFS共有へのアクセス、スワップスペース(したがって(通常は)ローカルハードドライブ)へのアクセスです。 ..純粋なネットワークアクセスがこれに寄与するかどうかはわかりませんが、私の腸はノーと言います。NFSはFSレイヤーを使用するため、追加するだけです。「top」には通常「待機」があります。通常これを示す「または「iowait」パーセンテージ。
IO統計は100%であってはなりません。ディスクIOが大量にある場合は、50%を超える高さになる可能性がありますが、正確に100%は通常、IOサブシステムに問題があることを意味します。これは、私が行ったときに発生しました。障害の初期段階でハードドライブがあり、ディスクが要求に応答するのに時間がかかるが、それでも応答する。
または、それは単に非常にひどく書かれたアプリケーションである可能性があります。単純なDTraceスクリプトで、それがどれであるかがわかります。
IO負荷が非常に高くなる可能性があるのは、ページングです。アプリケーションがすべての物理メモリを消費し、マシンのページングをハードにしていますか?
vmstat 5
si
列とso
列に0
以外のものが表示されている場合は、マシンがページングしている(おそらく大量に)。