[Linux] psコマンドの出力結果を並び替える方法

psコマンドは現在のプロセスの状態を表示します。トラブルシューティングや日常の運用業務でよく利用されるコマンドの一つです。

ps – report a snapshot of the current processes.

psコマンドのデフォルトの出力結果は並び替えは行われません。ここではpsコマンドの出力結果を並び替える方法を紹介します。
※以降の実行例は、Ubuntu17.10で確認しています。

1. psの出力結果を並び替える方法

スタンダードフォーマットを利用する場合は、--sortオプションを利用します。--sortオプションは昇順で並び替えを行いますが、並び替える対象名に’-‘をつけることで降順に並び替えることができます。
 
BSDフォーマットを利用する場合は、Oオプションもしくはkオプションが利用できます。kオプションの場合、並び替えに利用する対象名にスタンダードフォーマットと同じ名前を利用することができます。どちらのオプションでも、並び替える対象名に’-‘をつけることで降順に並び替えることができます。

2. CPU使用率の高い順番に並べる

$ ps -ef --sort -%cpu
$ ps -eo %cpu,cmd --sort -%cpu
$ ps auxO -C
$ ps auxk -%cpu

3. メモリ使用率の高い順番に並べる

$ ps -ef --sort -%mem
$ ps -eo %mem,cmd --sort -%mem

4. コマンド名で並び替える

パスを含めない実行コマンド名で並び替えます。

$ ps -ef --sort comm
$ ps -eo comm --sort comm

5. 物理メモリの使用量が高い順番に並び替える

$ ps -ef --sort -rss
$ ps -eo rss,cmd --sort -rss
$ ps auxO -r
$ ps auxk -rss

6. 仮想メモリの使用量が高い順番に並び替える

$ ps -ef --sort -vsz
$ ps -eo vsz,cmd --sort -vsz
$ ps auxO -v
$ ps auxk -vsz

 
以上、psコマンドの出力結果を並び替える方法の紹介でした。