web-dev-qa-db-ja.com

ZFSを使用するSolaris上のiostat-待機と%wが常にゼロであるのはなぜですか?

忙しいサーバーがあり、高いIO負荷の下でチョッキングしています、少なくとも、それは私が持っている感覚です。iostat -xzからの出力は次のようになります。

             extended device statistics                 
device    r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b 
sd5     224.8  157.8 10701.8 6114.7  0.0  9.5   24.7   0 100 
sd5     243.2  110.4 11565.3 4065.0  0.0  9.7   27.5   0 100

6ドライブのSATAアレイでは25msのサービス時間が許容できないため、ディスクサブシステムが過負荷になっていることは明らかです。また、100%ビジーであるということは、ディスクIOが不足していることも意味します。

しかし、なぜwaitは常に0.0なのですか?そして、なぜ%wも0なのですか? %wは時々1に移動し、すぐに0に戻ります。これは、IOを待機しているプロセスがないことを意味しませんか?

RAIDコントローラーはどういうわけかこの結果を引き起こします/待機時間をマスクしますか?

誰かがこの振る舞いを説明できますか?

3
shlomoid

Svc_t時間は、ミリ秒単位で「ラウンドトリップ」を測定します。

オペレーティングシステムの「下部」-ディスクサブシステム-オペレーティングシステムの「下部」

「100%ビジーとは、ディスクIOが不足していることを意味する」というのは完全には正しくありません。これは、ディスクが何かをしている時間の100%でビジーであったことを意味します。必ずしもこれ以上実行できないことや、時間内に要求を処理しないことを意味します(これは微妙な違いです)。

通常、過負荷のディスクの症状は、%w列とactcの値が高いことです(着実に200を超えています)。

レイテンシーの問題でしょうか?コントローラーが6番目のデータチャンクを探すのに時間を費やすように、システムは多くのランダムな操作を要求しますか?

2
marcoc

はい、RAIDコントローラーが数字をめちゃくちゃにしているのは正しいと思います。要求されるとすぐに操作が開始されたことをドライバーに通知する場合、ドライバーは、RAIDコントローラー内のディスクハードウェアをまだ待機していることを認識しません。 RAIDコントローラーから統計を直接取得できますか?

1
JOTN