Apache: 高ディスク読み取りロード、要求なし

Apache: 高ディスク読み取りロード、要求なし

Ubuntu VMでは、iotopはディスク全体を作成するいくつかの「apache2 -k start」プロセスを示しています。読む記録された要求がなくても、負荷は常に4M / sから7M / sの間でした。

lsofは、www-dataで使用されている約5000の一般的なファイルを示しました。ディスクIOがまったくないはずですが、そのように多くのディスクIOを引き起こす原因をどのように確認できますか?

答え1

高いI / Oの兆候には、そのI / Oの詳細をドリルダウンする追跡ツールが必要になる場合があります。straceこれを行う一般的な方法は次のとおりです。

strace -e trace=file -ff -o output -y -p $some_httpd_pid_here
  • -e trace=filereadファイル関連の操作を追跡します(他の便利な指定子があります。詳細なマニュアルを参照してください)が、これについてどのファイル記述子を読んでいるかを確認するために必要な呼び出しは表示されません。-e trace=open,readすべてを追跡し、出力をgrepします。 ....
  • -ffCGIなどを作成したり、httpd起動時に基本プロセスに従う場合は、フォークに従うことをお勧めします。
  • -o outputファイルと対話し、-ff後で表示できるようにファイルを作成しますoutputoutput.*
  • -y以前のバージョンに移植することはできませんが、straceファイル記述子42や参照者を見つけるのに苦労する可能性があります。

strace非常に遅い場合があります。カーネルが実行するタスクを追跡またはデバッグするためのLinuxsysdigまたは代替も参照してください...)SystemTap

関連情報