負荷平均が時々25を超えるシングルコアVPSがあります。それに達すると、それは耐えられないほど遅くなり、コマンドdash
よりも速く実行され、RAMの使用量が少ないコマンドでさえ実行bash
に時間がかかります。高負荷の原因となっているプロセスを追跡するにはどうすればよいですか?
負荷平均が時々25を超えるシングルコアVPSがあります。それに達すると、それは耐えられないほど遅くなり、コマンドdash
よりも速く実行され、RAMの使用量が少ないコマンドでさえ実行bash
に時間がかかります。高負荷の原因となっているプロセスを追跡するにはどうすればよいですか?
回答:
インストールできhtop
ます。良い点htop
は、CPUごとの使用量と、メモリとスワップの使用量の意味のあるテキストグラフが一番上に表示されることです。
インストールするにはhtop
:
sudo apt-get install htop
始めよう:
htop
を押しF6
てプロセスをソートし、ナビゲーションキーを使用して選択PERCENT_CPU
してEnter キーを押します。
またはtop
、次のように使用できます(ソース)。
top -b -n 1 | head -n 12
P
プロセッサの使用状況、M
メモリ、またはT
時間で並べ替えt
、ツリーレイアウトに戻ることができます。
htop
いくつかの基本的なマウスのサポートがあります。列をクリックすると、それらを並べ替えることもできます(私が間違っていない場合)。マウスを操作する他のいくつかの操作があります。
以下は単にUnix.SEから盗まれたものです。CPU使用率が60%を超える場合に最大の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、およびプロセスのファイルが含まれています。
ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}'
これは、NR<=5
現在最大のCPU負荷を引き起こしている上位5つのプロセスを示しています。
昨日は勉強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> &
)実行しようとしましたが、それがまったく不可能であることに気付きました:)
参照:
NR>=2
そこにあります。ヘッダー行を省略するps
オプションh
が提供されることがわかります。私の最新の回答を参照してください。
NR>=2
、NR>1
短いです:)私は答えを更新しました。
top
コマンドを使用
top
- Linuxプロセスを表示します一番上のプログラムは、実行中のシステムの動的リアルタイムビューを提供します。システムの概要情報と、現在Linuxカーネルによって管理されているプロセスまたはスレッドのリストを表示できます。表示されるシステムサマリー情報のタイプ、およびプロセスについて表示される情報のタイプ、順序、サイズはすべてユーザーが構成可能であり、その構成は再起動後も永続化できます。
sudo apt install htop
この目的に役立つテキストモードツールを提供します(標準よりもユーザーフレンドリーtop
)。しかしtop
、小さなフットプリントが必要な場合は良いです。