Linux下查看系统中占用内存和CPU最多的进程
2022/9/4 5:22:48
本文主要是介绍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,注意大写)
转载自:https://linux265.com/news/3818.html
这篇关于Linux下查看系统中占用内存和CPU最多的进程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南