方法一使用top命令
top命令能够实时地显示系统中所有进程的CPU使用率和内存消耗情况,并以降序排列。以下是使用top命令的示例输出
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18795 root 20 0 57636 2936 2592 R 100.0 0.1 26:19.90 java
18785 root 20 0 57636 2936 2592 R 99.6 0.1 26:19.81 java
18776 root 20 0 57636 2936 2592 R 99.3 0.1 26:19.75 java
18767 root 20 0 57636 2936 2592 R 99.0 0.1 26:19.66 java
18758 root 20 0 57636 2936 2592 R 98.7 0.1 26:19.58 java
请注意,top会持续更新,直到您通过按下Ctrl+c来停止它。如果您更喜欢交互式界面,htop命令提供了类似的功能,并且支持垂直和水平滚动。
方法二使用ps命令
ps命令也可以用来找出哪些进程占用了最多的内存。以下命令将列出按CPU使用率和内存消耗排序的顶级进程
sudo ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
这个命令的输出类似于
PID PPID COMMAND %MEM %CPU
18795 18783 java 0.1 100.0
18785 18783 java 0.1 99.6
18776 18783 java 0.1 99.3
18767 18783 java 0.1 99.0
18758 18783 java 0.1 98.7
在这个命令中,我们使用了-e选项来列出所有进程,o选项来指定输出格式,--sort选项来按%mem字段进行降序排列。