ディスクへの重い書き込みを識別する方法は?


9

CakePHPアプリケーションを実行しているサーバーでこの問題があります。サーバーがめちゃくちゃ遅いので、最初はアプリケーションの問題だと思っていましたが、ディスクへの書き込みが5〜6MB /秒であることがわかりました。

そのような重い書き込みの原因を見つける最も簡単な方法は何ですか?

サーバーはGentooを実行しています。

回答:



17

Dstatの作者として、私は追加のオプションを指摘します。I / O帯域幅を最も多く消費しているプロセスを簡単に確認できます。

dstat -ta --top-bio

またはdstat -ta --top-io

1つ目はトップブロックI / O、2つ目はトップI / O(キャッシュを含む)です。これは、これが期待どおりかどうか(消費者と消費の両方)を検証するのに役立ちます。

ディスクの使用率を特定するのに役立つ他のプラグインがいくつかあります。

dstat -tdf --disk-util

したがって、I / Oボトルネックがある場合は、これにより、どのディスクが関係しているかがわかり、その最後に何かできるかどうかを確認できます。

また、特定の(ネットワーク)ファイルシステムのトラブルシューティングを行う場合は、他のプラグインを使用して、それらのファイルシステムに関する詳細情報を取得できます。Dstatには、他のメトリック(cpu、VM、仮想化など)のプラグインもあり、視覚化する必要があるものに応じて、独自のプラグインを記述したり、既存のプラグインを変更して相関する必要があるものを正確に表示したりできます。

ただし、サポートが必要な場合、貢献したい場合、または気の利いた新しいアイデアがある場合は、私に連絡して、どのように進めればよいかを確認してください...



3

dstatのマニュアルページから-「dstat -M time、cpu、net、disk、sys、load、proc、topcpu」。dstatはほとんどのディストリビューションでインストールされるため、iotopをインストールするよりも高速です。


3

vmstatとiostatを試す


1

次のコマンドを使用して、syslogにディスクアクティビティを(pidが生成するとともに)ダンプできます。

echo 1 > /proc/sys/vm/block_dump

これを発行する前に、システムログがブロックデバイス上にないことを確認してください。そうしないと、無限ループに陥ってしまいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.