かなり忙しいphp/mysqlサイトを実行しているサーバーのボトルネックを見つけようとしています。私の最初の犯人はioでしたが、iostatは、平均してiowaitがCPU時間の%3.60しか消費しないことを示しています。 iostatを発行した完全な結果は次のとおりです。
avg-cpu: %user %Nice %system %iowait %steal %idle
65.78 0.00 8.52 3.60 0.00 22.10
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 42.36 138.28 1754.70 408630278 5185216128
それで、iowaitが許容範囲内にあるかどうか、そうでない場合は、SATAからSSDに切り替えると劇的に減少するかどうか疑問に思っています。
iowait
は、システム負荷の尺度として、他のプロセスで合理的に使用される可能性のあるCPU時間を消費するため、問題になります。それでもアイドルCPU時間が残っている場合は、高いiowait
(それ自体)は問題ではありません。
一方、高いiowait
canは問題の症状です。ただし、実際には、アプリケーションをプロファイリングして、ディスクI/Oに費やされた時間が、有用なタスクを完了するのにかかった合計時間のかなりの割合であるかどうかを確認する必要があります。 CPU統計、top
、htop
、iotop
、または人々が推奨しようとするその他のシステムレベルのツールを調べても、これを行うことはできません。 アプリケーションとその動作方法を調べて、ディスクI/Oサブシステムの変更がアプリケーションに役立つかどうかを判断する必要があります。
ディスク使用率はより重要です。次の方法で測定できます。
iostat -xm 5
おそらく100%近くと言うでしょう