web-dev-qa-db-ja.com

最も負荷の高いプロセスを見つけるにはどうすればよいですか?

負荷平均が25を超えることがあるシングルコアVPSがあります。それに達すると、それは耐えられないほど遅くなり、コマンドでさえdashより速く、より少ないRAMを使用して実行されるbashでさえ、実行に時間がかかります。高負荷の原因となっているプロセスを追跡するにはどうすればよいですか?

10
NerdOfLinux

htopをインストールできます。 htopの良い点は、CPUごとの使用量と、メモリの意味のあるテキストグラフとスワップ使用量を上部に表示することです。

htopをインストールするには:

Sudo apt-get install htop

始めよう:

htop

enter image description here

F6を押してプロセスをソートし、ナビゲーションキーを使用してPERCENT_CPUを選択し、Enterを押します。

enter image description here

または、この方法でtopを使用できます( source ):

top -b -n 1 | head -n 12
15
neferpitou

以下は単に nix.SE:CPU使用率が60%を超える場合に最大CPU使用率を取得しているプロセスを見つけますか? から盗まれたものですが、もちろんこの質問に適合しています。

特定のCPU使用率別にプロセスを一覧表示する

ps ahux --sort=-c | awk '{if($3>0.0)printf"%s %6d %s\n",$3,$2,$11}'

これにより、CPU使用率が>0.0%のプロセスのリストが表示されます。必要に応じて、この値を変更できます。 >50.0。各行には、CPU使用率(%)、PID、およびプロセスのファイルが含まれます。

cPU使用率が最も高いプロセスをリストする

ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}'

これは、現在最大のCPU負荷を引き起こしている上位5(NR<=5)プロセスを示しています。

10
dessert

topコマンドを使用

top-Linuxプロセスを表示

トッププログラムは、実行中のシステムの動的なリアルタイムビューを提供します。 Linuxカーネルによって現在管理されているプロセスまたはスレッドのリストだけでなく、システムの概要情報も表示できます。表示されるシステムサマリー情報のタイプ、およびプロセスに対して表示される情報のタイプ、順序、サイズはすべてユーザーが構成可能であり、その構成は再起動後も維持できます。

ソース

良いYouTubeチュートリアル

1
Eric Korolev

昨日、私はawkを勉強していたので、他の2つの答えを試しました。結果は次のとおりです。

  • ps auxを使用して、CPU使用率が最も高いプロセスのみを取得します。

    ps auxh | awk -v max=0 '{if($3>max){CPU=$3; PID=$2; NAME=$11; max=$3}} END{printf "%5s %6d %s\n",CPU,PID,NAME}'
    
  • topを使用して、CPU使用率が最も高い3つのプロセスを取得します。

    top -b -n 1 | awk 'NR>7 && NR<11 {printf "top: %5s %6d %s %s\n",$9,$1,$12,$13}'
    
  • ps auxを使用して、CPU使用率が最も高い3つのプロセスを取得します。

    ps auxh --sort=-c | awk 'NR<=3 {printf "ps:  %5s %6d %s\n",$3,$2,$11}'
    

最後の2つのコマンドを(<command>; wait; <command><command> & <command> &で)同時に実行しようとしましたが、まったく不可能であることに気付きました:)


参照:

1
pa4080