GNU/Linux >> Linux の 問題 >  >> Linux

CPU 使用率が高くない場合、どのプロセスが高負荷を引き起こしているかをどのように判断できますか?

解決策 1:

iostat そのような統計を報告できます。通常、ディストリビューションのパッケージ sysstat に含まれています。

dstat も一見の価値があるかもしれません。これは最新の代替品です。

解決策 2:

カーネルに IO アカウンティングがある場合は、iotop を使用できます そのような情報を提供します。また、collectd などの監視ツールは、データを記録してレポートすることができます。

解決策 3:

高負荷の原因を見つけるために、いくつかのことを確認できます。

  • vmstat -w ovierwiem (プロセス、スワップ、メモリ、CPU、IO、システム) が表示されます
  • pmstat -P ALL CPU コアごとの統計 (%iowait を使用) を提供します
  • iostat -x %util が高いか、待機時間が長いか、平均キュー サイズが大きいかを探します
    • iotop でさらに掘り下げる
  • ps -ax 割り込み不可能なスリープ (通常は IO) である状態 D を探し、もう一度実行して、まだ D 状態にあるかどうかを確認します
    • strace でさらに深く掘り下げる
    • lsof と netstat を使用して、これらのプロセスのファイルと接続を確認します
  • sar/sysstat - このツールを使用すると、「現在」の統計だけでなく、昨日の午前 0 時に何が起こっていたかを確認することもできます
    • sar -b - 全体的な io 活動
    • sar -d - 個々のブロック デバイス io アクティビティ

Linux
  1. Linux で各プロセスのスワップ使用状況を確認する方法

  2. PostgreSQL がインストールされているかどうかを Linux スクリプトで確認するにはどうすればよいですか?

  3. /tmp のディスク容量を確認するにはどうすればよいですか?

  1. ドライブを回転させているものをどのように確認できますか?

  2. 使用している Linux のバージョンを確認するにはどうすればよいですか?

  3. Linux ホストで cgroup が使用可能かどうかを確認するにはどうすればよいですか?

  1. Linux ボックスに接続されているハードディスクを確認するにはどうすればよいですか?

  2. プロセスが開いているファイルを確認するにはどうすればよいですか?

  3. VMware Linux Server -- 自分が仮想マシンなのか実際のハードウェアなのかをどうやって見分けることができますか?