%20%E3%81%A7%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E6%93%8D%E4%BD%9C%E3%81%AE%E5%8E%9F%E5%9B%A0%20(%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%BF%E3%83%BC%E3%82%B2%E3%83%83%E3%83%88%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB)%20%E3%82%92%E8%A8%98%E9%8C%B2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
私は PHP ベースのアプリケーション (Apache 内) を搭載した仮想マシンを持っていますが、ディスク アクティビティを確認すると、Apache の実行中は常に 170kbps の書き込みが行われています。
負荷をかけると、サーバーのパフォーマンスは CPU に依存しますが、これはディスク書き込み IO の 20 ~ 30 倍の増加に直接関係しているようです。CPU 使用率のグラフは、書き込みディスク アクセスのグラフを反映しています。
何か案は?
答え1
2つの推奨事項:
iotopは、コマンドのような形式でリアルタイムの I/O 使用状況を表示する便利なプログラムですtop
。これにより、すべての I/O を実行しているスクリプト/バイナリを特定できます。新しいカーネルにはすでにインストールされていると思いますが、見つからない場合は、RHEL で yum が提供している可能性があります。
lsof
I/O のトラブルシューティングにも役立ち、開いているファイルがすべて一覧表示されます。
アップデート
ディスクアクティビティが「一定」している場合は、iotop
どのプロセスが原因であるかがわかります。I/O トランザクション履歴について: ほとんどの Linux ディストリビューションでは、IO 履歴がどこにも記録されていないと思いますが、cron ジョブを追加することはできます。
root として crontab を開きcrontab -e
、次の 2 行を追加します。
* * * * * /bin/date >> /var/log/iotop; /usr/local/bin/iotop -bot --iter=3 -q >> /var/log/iotop
* * * * * /bin/date >> /var/log/lsof; /usr/bin/lsof -b -w >> /var/log/lsof
これは 1 分ごとにダンプしてiotop
ログlsof
に出力します。ファイルがすべてのスペースを占有しないようにするには、それぞれに logrotate スクリプトを追加します。例:
someuser@myhost:~> cat /etc/logrotate.d/lsof
/var/log/lsof {
rotate 3
weekly
compress
missingok
notifempty
}
答え2
関係のないバックグラウンド タスクが、php がプリコンパイルされている /tmp ディレクトリの内容を削除していたようです。その結果、php のプリコンパイル プロセスが再び開始され、ディスク アクティビティが継続的に発生しました。