回答:
コマンドps
で簡単にできるのに、なぜ使用するのですtop
か?
を使用する必要がある場合はps
、これを試してください:
ps aux | sort -nrk 3,3 | head -n 5
常に更新される、本当に「トップ」なものが必要な場合は、watchを使用します
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
top
実際にどのように機能するかとはどう違うのでしょうか。
top
はプロセスリストを読み取り、他のプロセスにパイプすることなく独自に結果を表示します
正解は次のとおりです。
ps --sort=-pcpu | head -n 6
したがって、ソートを妨げることなく列を指定できます。
例:
ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6
MAC OS Xに関する注意:Mac OS Xでは、ps
は認識しません--sort
が-r
、現在のCPU使用率でソートすることを提案します。したがって、Mac OS Xでは次を使用できます。
ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6
bash
(x2、またはhead
同様に)表示されるようps
です
sort
で、2つ目は、ソートを妨げることなく列を指定する方法を示します。何かを説明するとき..簡潔で、一度に一つのことを説明することが常に良いです。
ニーズによっては、これがもう少し読みやすくなるかもしれません。
ps -eo pcpu,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 5
サンプル出力:
1.3 4 root [ksoftirqd/0]
1.1 9 root [ksoftirqd/1]
1.0 17606 nobody /usr/sbin/gmetad
1.0 13 root [ksoftirqd/2]
0.3 17401 nobody /usr/sbin/gmond
(フィールドは%CPU、PID、USER、COMMANDです)
私はps
あなたが探しているものだとは思わない。からの出力を見ましたtop
か?
GNU-Topをお持ちの場合は、バッチモードを使用して、CPU使用量でソートされたプロセスリストを吐き出し、head / tailを使用して上位5行を取得してみてください(最初の8行はヘッダーです)。
top -b -n 1 | head -n 12 | tail -n 5
BSDトップは異なる動作をするようで、非インタラクティブモードがないため、他のps
ベースのソリューションのいずれかを使用します。
top -o cpu -n 5
、同じことを達成する方法です。誰か知っている?私top
はあなたとは違うtop
。
-o
ありません-n
。
top
はバッチモードがありませんが、これはかなり制限されています。top
他のコマンドにパイプする方法が必要です。調査を行います。
top
は、今日の午後の説明どおりに機能しました。乾杯。
他の貴重な答えにポイントを追加するために、私は好む:
ps auxk-c | head -6
また、ヘッダーも出力します。これは便利です。
これk
は、ソートのCPU使用率(エイリアス)フィールド--sort
と同じであり、逆ソートのフィールドです。c
%cpu
-
あなたが区切らより指定子を追加することができ,
、他の可能指定子は、次のとおりです。%mem
、args
、bsdstart
、pid
、gid
、uid
...あなたは完全なリストを見つけることができます 標準フォーマット指定子の manページのセクションを。例えば:
ps auxk -gid,-%mem | head -11
内部的にメモリ使用量でソートされた最高のグループIDを持つ10のプロセスを印刷します。
コマンドラインツールにps
は独自の並べ替えオプションがあるので、次のようにします。
$ ps -eo pcpu,args --sort=-%cpu | head
必要な列を追加できます。他のオプションはps
manページで利用できます。
$ man ps
top
Mac OS Xには、の形式のロギングモードオプションがありますtop -l numberOfSamples
(これはGNUのバッチモードに相当するようですtop
)。ただし、「表示される最初のサンプルは、サンプル間のデルタを使用して計算されるため、プロセスごとに無効な%CPUが表示される」ため、少なくとも2つのサンプルが必要です(man 1 top
)。
# examples
top -o cpu -l 2 -n 5 | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu -U $(logname) | tail -n 6
トップ5のCPU消費プロセスを確認する最も簡単な方法は、
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5
上位5つのメモリ消費プロセスを確認するには、
ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5
どこ、
-e
:このフラグは、すべてのプロセスを選択するために使用されます
-o
:このフラグは、ユーザー定義としてフォーマットするために使用されます。
pid
:pidの表示に使用されるこの引数
comm
:この引数は、コマンド名のみを表示するために使用されます。完全なコマンドを使用するにはargs
、cmd
またはcommand
%cpu
:この引数は、プロセスのCPU使用率を「##。#」形式で示します。こちらpcpu
も使用できます。
%mem
:この引数は、プロセスの常駐セットサイズとマシン上の物理メモリの比率をパーセンテージで示します。こちらpmem
も使用できます。
--sort
:ソート順を指定します。後にサインがあるデフォルトのオプションは、先頭に最高値をソートするために使用される[すなわち0からn]数値の昇順リストすることです。=
-
+