Solaris VMからCPU I / Oレイテンシメトリックを取得するコマンドを探しています。
私が見つけた結果vmstat -s
は次のとおりです。
2627 user cpu
62008 system cpu
285180 idle cpu
**0 wait cpu**
マニュアルページを見ましたが、vmstat
待ち時間に関するテキストは表示されません。
上記の出力の最後の行がI / O待ち時間であると仮定できますか?
答え1
いいえ、最後の行はI / Oレイテンシを報告しませんが、実際のロードに関係なくSolarisでゼロを表示するようにハードコードされています。
マルチコアおよびマルチスレッドCPUの普及により、I/O wait
時間はもはや実際の意味を持たず、誤解を招く可能性があります。 I / Oは通常単一のCPUユニットにバインドされていないため、1つ以上のI / Oが保留中にI / Oを待つ特定のCPUはありません。いずれの場合も、プロセスだけがI / Oが完了するのを待っています。この待機はCPUサイクルを使用しないため、技術的にCPUはこの間アイドル状態であり、他のタスクに使用できます。 Solaris 10 以降、アイドル時間と区別されない I/O がゼロとして報告され、以前のI/O wait
値が CPU アイドル時間に含まれることが事実です。
I / Oが心配な場合は、ディスクの統計を調べてくださいiostat
(例iostat -xntc 5
:サービス時間svc_t
、キューで待機しているI / Oの数wait
、キューが空でない時間の割合%w
など)。vmstat
、、などを介してCPU統計を報告しましたsar
。top
iostat
この資料はI / Oパフォーマンスの問題を調査するのにも役立ちます。http://dtrace.org/blogs/brendan/2011/05/11/file-system-latency-part-1/
これこの問題はLinuxと同じように解釈されます。
答え2
vmstatは仮想メモリ使用量を測定するために使用される可能性が高いため、より良い提案は以下を使用することですiostat
。sar
iostat:
iostat 1 3
tty sd2 ssd35 ssd38 ssd39 cpu
tin tout kps tps serv kps tps serv kps tps serv kps tps serv us sy wt id
0 0 0 0 0 162 7 18 1513 24 6 0 0 0 41 27 0 32
0 236 0 0 0 0 0 0 0 0 0 0 0 0 51 27 0 21
CPUフィールドに注意を払う必要があります。 us - これを使用しているアプリケーションの数、sy - オペレーティングシステム、wt - 待機時間、id - CPUの中間時間
男の名前:
sar -u 1 2
SunOS frctfscc16p 5.10 Generic_150400-35 sun4u 08/17/2016
09:29:02 %usr %sys %wio %idle
09:29:03 39 22 0 39
09:29:04 32 21 0 47
Average 36 21 0 43
この場合、基本的にはiostatと同じであることがわかります。好きなように選択できます。他のツールもありますが、私はタイムリーに良い指標を提供しているので、sarを好みます。