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


10

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


2
sudo apt install htopこの目的に役立つテキストモードツールを提供します(標準よりもユーザーフレンドリーtop)。しかしtop、小さなフットプリントが必要な場合は良いです。
sudodus

2
ロードキューの長さは、CPUを使用する準備ができているプロセスの数を示します。これは必ずしも問題を引き起こしている単一のプロセスであるとは限りません。
–ThorbjørnRavn Andersen 2017

回答:


16

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

インストールするにはhtop

sudo apt-get install htop

始めよう:

htop

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

またはtop、次のように使用できます(ソース)。

top -b -n 1 | head -n 12

2
ショートカットとして、Pプロセッサの使用状況、Mメモリ、またはT時間で並べ替えt、ツリーレイアウトに戻ることができます。
deltab 2017年

興味深いことに、htopいくつかの基本的なマウスのサポートがあります。列をクリックすると、それらを並べ替えることもできます(私が間違っていない場合)。マウスを操作する他のいくつかの操作があります。
Ismael Miguel

11

以下は単にUnix.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}'

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


1

昨日は勉強awkしていて、他の二つの答えで遊んだ。結果は次のとおりです。

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

    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}'
    
  • 以下を使用して、CPU使用率が最も高い3つのプロセスを取得しますtop

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

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

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


参照:


最後の1つは、CPU使用率が最も高いプロセスを示していませんが、2つ目のプロセスから開始します。おそらくNR>=2そこにあります。ヘッダー行を省略するpsオプションhが提供されることがわかります。私の最新の回答を参照してください。
デザート

@デザート、あなたは正しいです、以前はそれでしたがNR>=2NR>1短いです:)私は答えを更新しました。
pa4080 2017年

1

topコマンドを使用

top- Linuxプロセスを表示します

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

ソース

良いyoutubeチュートリアル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.