Solaris での CPU I/O レイテンシの計算

Solaris での CPU I/O レイテンシの計算

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統計を報告しましたsartopiostat

この資料はI / Oパフォーマンスの問題を調査するのにも役立ちます。http://dtrace.org/blogs/brendan/2011/05/11/file-system-latency-part-1/

これこの問題はLinuxと同じように解釈されます。

答え2

vmstatは仮想メモリ使用量を測定するために使用される可能性が高いため、より良い提案は以下を使用することですiostatsar

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を好みます。

関連情報