如何在Linux系统上查看按实际内存使用量排序的顶部进程?
Linux 提供了著名的 **top** 命令实用程序,它可以提供有关进程、其运行时间、各自的 ID、它们消耗的 CPU 资源等等信息。唯一的问题是进程没有按照任何顺序排序,并且顺序会频繁变化。
在某些情况下,我们希望输出以某种排序方式显示,例如按内存使用量排序,内存使用量最高的进程排在最前面。
最基本的方法是使用 Linux 提供的 **ps** 命令,并附加类似的命令,主要是 **--sort** 标签和 **mem** 命令。
在使用 **ps** 命令打印内存消耗最大的进程之前,让我们先了解一下它。
第一个命令是 Linux 操作系统的 **ps** 命令。**ps** 命令是“进程状态”的缩写,用于列出当前在 Linux 机器上运行的进程,以及它们的 PID 和其他选项。
语法
ps ef | [ - options ]
让我们举两个例子,第一个例子将打印在你的 Ubuntu 机器上运行的所有进程,第二个例子将打印特定服务是否正在运行。
命令
ps ef
输出
UID PID PPID C STIME TTY TIME CMD 0 1 0 0 25Jun21 ?? 19:53.44 /sbin/launchd 0 56 1 0 25Jun21 ?? 0:41.68 /usr/sbin/syslogd 0 57 1 0 25Jun21 ?? 0:59.28 /usr/libexec/UserEventAgent (System)
上述命令的输出非常庞大,所以我只打印了一部分,需要注意的是输出可能会有所不同。
现在我们对 **ps** 命令有了一些了解,让我们看看将给我们所需输出的命令。
命令
ps aux --sort ‘%mem’
输出
USER PID %CPU %MEM VSZ RSS TTY ... root 1284 1.5 3.7 452692 142796 tty7 immukul 2286 0.3 3.8 1316000 143312 ? immukul 5150 0.0 4.4 660620 168488 pts/0 immukul 5147 0.0 4.5 660556 170920 pts/0 immukul 5142 0.1 6.3 2581944 239408 pts/0 immukul 2386 3.6 16.0 1752740 605372 ?
正如我们在上面的输出中看到的,进程按它们消耗的内存从小到大排序。
另一种选择是使用 **top** 命令本身,并按照以下步骤操作
在你的终端中键入 **top** 后,按 **SHIFT + M**,然后在交互式菜单中按进程内存排序。最后,运行以下命令
top -o +%mem
输出
USER PID %CPU %MEM VSZ RSS TTY ... root 1284 1.5 3.7 452692 142796 tty7 immukul 2286 0.3 3.8 1316000 143312 ? immukul 5150 0.0 4.4 660620 168488 pts/0 immukul 5147 0.0 4.5 660556 170920 pts/0 immukul 5142 0.1 6.3 2581944 239408 pts/0 immukul 2386 3.6 16.0 1752740 605372 ?
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP