/proc/diskstats の数値が突然信じられないほど低くなったのはなぜですか?

/proc/diskstats の数値が突然信じられないほど低くなったのはなぜですか?

私は、RAID-10 で 2 つの Intel DC S3610 SSD を搭載した Debian jessie サーバーを持っています。IO はかなり忙しく、ここ数週間、IOPS をグラフ化しています。

sda のディスク IO トランザクションのグラフ

ご覧のとおり、ほとんどの時間、平均読み取り操作は約 1,000 回で、ピーク時には約 5,500 回で問題なく実行されていましたが、金曜日の UTC 深夜に突然停止し、読み取り操作がほぼゼロにまで低下しました。

実のところ、サーバーは正常に動作しているため、私は後からこれに気付きました。つまり、セットアップで実行できる IOPS の量ではなく、監視が壊れているのだと思います。実際の IOPS が表示されたレベルまで低下していたら、他のすべてが著しく壊れているので、私は気付くでしょう。

さらに調査してみると、キロバイトの読み取り/書き込みグラフも同じ時点で壊れています。ただし、リクエストのレイテンシ グラフは正常です。

ここで使用されている特定のグラフ作成ソリューション(cactiとSNMP)を除外するために、私は次のことを検討しました。iostat出力はグラフに表示されている内容と一致します。

私の知る限りではiostat情報源は/proc/ディスク統計。 によるとhttps://www.kernel.org/doc/Documentation/iostats.txtメジャー、マイナー、デバイス名、そして一連のフィールドがあり、最初のフィールドは完了した読み取りの数です。つまり、

$ for i in {1..10}; do awk '/sda / { print $4 }' /proc/diskstats; sleep 1; done
3752035479
3752035484
3752035484
3752035486
3752035486
3752035519
3752035594
3752035631
3752036016
3752036374

10 秒間にこれほど少ない数の読み取りが完了したというのは信じられません。

しかし、もし/proc/ディスク統計私に嘘をついているのなら、問題は何であり、どうすれば解決できるのでしょうか?

また興味深いのは、何が変わったとしても、それがちょうど真夜中に起こったという事実であり、これはむしろ偶然である。

サーバーには非常に多くのブロック デバイスがあります。そのうち 187 個は LVM LV で、他の 18 個は通常のパーティションと md デバイスです。

私は定期的に LV を追加しているので、木曜日に何らかの制限に達した可能性がありますが、深夜近くには追加していなかったので、何らかの問題が深夜に発生したというのはやはり奇妙です。

私はそれを知っています/proc/ディスク統計オーバーフローする可能性がありますが、その場合、数値は通常、誤って大きくなります。

グラフをもう少し詳しく見ると、木曜日はそれ以前の週(および数週間)よりも急激に上昇していることがわかります。その期間の結果だけを拡大すると、次のようになります。

木曜日に焦点を当てたIOPS、sdaのグラフ

読み取り数がゼロまたはゼロに近いギャップは異常であり、現実を反映しているとは思えません。負荷を増やしたためリクエスト数が何らかのしきい値を超え、木曜日にそれが現れ始め、金曜日までにほとんどの読み取りがゼロになったのではないでしょうか。

ここで何が起こっているのか、誰か分かる人はいますか?

カーネルバージョン 3.16.7-ckt11-1+deb8u3。

関連情報