psコマンドで、CPU使用率・メモリ使用量でソートする

psコマンドで、CPU使用率・メモリ使用量の並びに変更する

PSコマンドでは、通常ではプロセスID順に並んでいますが、この並びをCPU使用率・メモリの使用率に変更して表示する事ができます。CPUやメモリ以外の項目でもソートできるので詳しくは、下記のpsコマンドのmanページを参考にしてください

Man page of PS

PSコマンドでCPU使用率でソートする

CPU使用率でソートするオプションは、「–sort -%cpu」を使用すれば、使用されているプロセスのCPU使用率順にソートされます。
並びからの順番ですが、「–sort -%cpu」で降順で「–sort +%cpu」とすれば昇順になります

$ ps aux --sort -%cpu | head
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql       1073  0.5  7.2 1078676 132096 ?      Ssl  06:33   1:40 /usr/libexec/mariadbd --basedir=/usr
apache     13697  0.3  5.3 540148 97364 ?        S    10:50   0:05 php-fpm: pool www
apache      1032  0.2  5.7 478672 104824 ?       S    06:33   0:42 php-fpm: pool www
apache      1036  0.2  5.6 478980 102960 ?       S    06:33   0:42 php-fpm: pool www
apache      1044  0.2  7.3 542516 133520 ?       S    06:33   0:43 php-fpm: pool www
apache      1050  0.2  5.6 478248 103616 ?       S    06:33   0:42 php-fpm: pool www
apache      1057  0.2  7.0 541756 128112 ?       S    06:33   0:40 php-fpm: pool www
apache      1487  0.2  5.7 479368 104708 ?       S    06:33   0:41 php-fpm: pool www
apache      6802  0.2  5.7 475784 105340 ?       S    06:50   0:40 php-fpm: pool www

PSコマンドでメモリ使用量でソートする

メモリ使用量でソートするオプションは、「–sort -%mem」を使用すれば、使用されているプロセスのメモリ使用量にソートされます。
並びからの順番ですが、「–sort -%mem」で降順で「–sort +%mem」とすれば昇順になります

$ ps aux --sort -%mem | head
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
apache      1044  0.2  7.3 542516 133520 ?       S    06:33   0:43 php-fpm: pool www
mysql       1073  0.5  7.2 1078676 132096 ?      Ssl  06:33   1:40 /usr/libexec/mariadbd --basedir=/usr
apache      1057  0.2  6.9 539708 126064 ?       S    06:33   0:41 php-fpm: pool www
apache      6802  0.2  6.0 479880 109436 ?       S    06:50   0:40 php-fpm: pool www
apache      1032  0.2  5.8 480720 106896 ?       S    06:33   0:42 php-fpm: pool www
apache      1487  0.2  5.8 481416 106756 ?       S    06:33   0:41 php-fpm: pool www
apache      1050  0.2  5.6 478248 103616 ?       S    06:33   0:42 php-fpm: pool www
apache      1036  0.2  5.6 478980 102960 ?       S    06:33   0:42 php-fpm: pool www
apache     13697  0.3  5.3 540148 97364 ?        S    10:50   0:05 php-fpm: pool www

また、psコマンドでの表示される「RSS」 と 「VSZ」のメモリ使用量を表すための異なる指標ですが、その違いは以下となります

  • RSS(Resident Set Size)
    物理メモリ(RAM)上に実際に割り当てられているメモリの量を表します。つまり、プロセスが現在使用している実際のメモリ量です。RSS はプロセスの実際のメモリ使用量を反映する指標として一般的に使用されます。
  • VSZ(Virtual Memory Size)
    プロセスが仮想メモリ上で使用しているメモリの量を表します。仮想メモリは物理メモリとスワップ領域(ディスク上のスワップファイルやスワップパーティション)の組み合わせで構成されます。VSZ はプロセスが利用可能な仮想メモリの総量を示し、物理メモリには必ずしも完全に割り当てられているわけではありません。仮想メモリはプロセスが必要に応じて物理メモリとスワップ領域の間でデータを移動するため、実際のメモリ使用量よりも大きく表示されることがあります。