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