使用 ps 命令根据 内存 使用情况对输出进行排序

默认情况下,“ps”命令的默认输出是未排序的。
但是,可以使用“--sort”或者“k”选项更改此默认行为。
在此教程中,我们将介绍如何根据内存使用情况对进程进行排序。

让我们从一个简单的 ps 命令输出开始:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1354  1.9  0.4 220900 37780 tty1     Ss+  07:18   7:05 /usr/bin/Xorg
lrendek   8803  0.0  0.0 116536  3260 pts/3    Ss+  09:54   0:00 /bin/bash
lrendek   8885  0.0  0.0 116668  3480 pts/4    Ss+  09:59   0:00 /bin/bash
lrendek   9294  0.0  0.0 116536  3320 pts/5    Ss   10:01   0:00 /bin/bash
root     11633  0.0  0.0 200656  3616 pts/5    S    11:18   0:00 su
lrendek   2709  9.5  9.1 2114284 739140 ?      Sl   07:21  32:39 /usr/lib64/firefox/firefox
lrendek  12300  0.0  0.0 116536  3260 pts/1    Ss   11:25   0:00 /bin/bash
lrendek  12341  0.0  0.0 110272  1184 pts/1    S+   11:25   0:00 less -s
lrendek  12353  0.0  0.0 116536  3196 pts/2    Ss   11:26   0:00 /bin/bash

正如前面已经提到的,默认的 ps 命令输出是未排序的。
但是, ps 允许根据任何列值对其输出进行排序。
要按内存使用情况排序,我们可以使用“%MEM”或者“RSS”列。
RSS(常驻集大小)是以千字节为单位的总内存使用量,“%内存”以可用总内存量的百分比使用率显示相同的信息。
下面是一些关于如何指示 ps 命令按内存使用情况排序的示例:

按 %MEM 排序

按 内存 百分比使用率排序。
最高值优先:

$ ps au --sort=-%mem
or
$ ps auk-%mem

按 内存 百分比使用率排序。
最高值最后:

$ ps au --sort=+%mem
or
ps auk+%mem

按 RSS 排序

按 RSS 使用排序。
最高值优先:

$ ps au --sort=-rss
or
$ ps auk-rss

按 RSS 使用排序。
最高值最后:

$ ps au --sort=+rss
or
$ ps auk+rss

请注意,“+”可以省略,因为它是默认选项,从而使 ps aukrssps auk+rss相同。

日期:2020-07-07 20:54:52 来源:oir作者:oir