Linux下查看系统中占用内存和CPU最多的进程
Linux下查看系统中占用内存和CPU最多的进程
前一段时间参加面试,被问到一个场景题:就比如说我们发现一台 Linux 的服务器,它的一些系统资源,比如说 CPU 内存都涨得比较厉害的。所以现在需要登录到这台机器上去,用什么样的命令去可以看到是哪些进程导致了这个 CPU 或者内存的飙升我可以用哪些命令去看。翻译过来就是在Linux下查看系统中占用内存和CPU最多的进程。可惜当时没有太理解。以下是后期查找到的相关的应该使用的命令:
1、linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
2、linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
3、命令组合解析(针对CPU的,MEN也同样道理):
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
该命令组合实际上是下面两句命令:
ps aux|head -1
ps aux|grep -v PID|sort -rn -k +3|head
可以使用以下命令查使用内存最多的10个进程
查看占用cpu最高的进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
或者top (然后按下M,注意这里是大写)
查看占用内存最高的进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
或者top (然后按下P,注意这里是大写)
该命令组合实际上是下面两句命令:
ps aux|head -1
ps aux|grep -v PID|sort -rn -k +3|head
其中第一句主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)
。
接下来的grep -v PID
是将ps aux
命令得到的标题去掉,即grep
不包含PID
这三个字母组合的行,再将其中结果使用sort排序。
sort -rn -k +3
该命令中的-rn的r表示是结果倒序排列,n
为以数值大小排序,而-k +3
则是针对第3列的内容进行排序,再使用head
命令获取默认前10
行数据。(其中的|表示管道操作)
补充:内容解释
PID
:进程的ID
USER
:进程所有者PR
:进程的优先级别,越小越优先被执行NInice
:值VIRT
:进程占用的虚拟内存RES
:进程占用的物理内存SHR
:进程使用的共享内存S
:进程的状态。S
表示休眠,R
表示正在运行,Z
表示僵死状态,N
表示该进程优先值为负数%CPU
:进程占用CPU
的使用率%MEM
:进程使用的物理内存和总内存的百分比TIME+
:该进程启动后占用的总的CPU
时间,即占用CPU
使用时间的累加值。COMMAND
:进程启动命令名称
可以使用以下命令查使用内存最多的K个进程
方法1:
ps -aux | sort -k4nr | head -K
如果是10
个进程,K=10
,如果是最高的三个,K=3
说明:ps -aux
中(a
指代all
——所有的进程,u
指代userid
——执行该进程的用户id
,x
指代显示所有程序,不以终端机来区分)
ps -aux的输出格式如下:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19352 1308 ? Ss Jul29 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S Jul29 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Jul29 0:11 [migration/0]
sort -k4nr
中(k代表从第几个位置开始,后面的数字4即是其开始位置,结束位置如果没有,则默认到最后;n
指代numberic sort
,根据其数值排序;r
指代reverse
,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM
在第4
个位置,根据%MEM
的数值进行由大到小的排序。
head -K
(K
指代行数,即输出前几位的结果)
|
为管道符号,将查询出的结果导到下面的命令中进行下一步的操作。
方法2:top (然后按下M,注意大写)
可以使用下面命令查使用CPU最多的K个进程
方法1:
ps -aux | sort -k3nr | head -K
方法2:top (然后按下P,注意大写)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了