首页 > 系统相关 >Linux下查看系统中占用内存和CPU最多的进程

Linux下查看系统中占用内存和CPU最多的进程

时间:2022-09-03 22:44:31浏览次数:165  
标签:sort ps head 内存 Linux 进程 aux 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——执行该进程的用户idx指代显示所有程序,不以终端机来区分)

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 -KK指代行数,即输出前几位的结果)

|为管道符号,将查询出的结果导到下面的命令中进行下一步的操作。

方法2:top (然后按下M,注意大写)

可以使用下面命令查使用CPU最多的K个进程

方法1:

ps -aux | sort -k3nr | head -K

方法2:top (然后按下P,注意大写) 

转载自:https://linux265.com/news/3818.html

标签:sort,ps,head,内存,Linux,进程,aux,CPU
From: https://www.cnblogs.com/pheotrix/p/16653874.html

相关文章

  • linux 上发布.netcore
    环境的准备1.windows环境1).虚拟机:这里我用VMware2).linux:这里我用CentOS73).文件传输工具:MobaXterm(用于windows发布文件上传,很多人可能会用XShell,都可以的) 2.lin......
  • 【Linux】正确的关机方法
    【Linux】正确的关机方法-NW_KNIFE-博客园 https://www.cnblogs.com/ningvsban/p/3663337.html1)shutdown命令我们较常使用的是shutdown这个命令,这个命令可以安......
  • linux 关机命令总结
    linux关机命令总结-wanggd_blog-博客园 https://www.cnblogs.com/wanggd/archive/2013/07/08/3177398.htmllinux下常用的关机命令有:shutdown、halt、poweroff、ini......
  • linux中快速清空文件内容的几种方法
    linux中快速清空文件内容的几种方法-Leone--博客园 https://www.cnblogs.com/doseoer/p/5966488.html这篇文章主要介绍了linux中快速清空文件内容的几种方法,需要的......
  • 每天一个linux命令(37):date命令
    每天一个linux命令(37):date命令-peida-博客园 https://www.cnblogs.com/peida/archive/2012/12/13/2815687.html在linux环境中,不管是编程还是其他维护,时间是必不可少......
  • linux如何查看文件夹大小
    linux如何查看文件夹大小-百度经验 https://jingyan.baidu.com/article/a17d52855c10bf8098c8f2c9.html方法/步骤 首先我们先来看最简单的方法,这种方法只是适用......
  • 每天一个linux命令(42):kill命令
    每天一个linux命令(42):kill命令-peida-博客园 https://www.cnblogs.com/peida/archive/2012/12/20/2825837.htmlLinux中的kill命令用来终止指定的进程(terminate a p......
  • Linux下用户组、文件权限详解
    Linux下用户组、文件权限详解-打伞的鱼-博客园 https://www.cnblogs.com/123-/p/4189072.html用户组在linux中的每个用户必须属于一个组,不能独立于组外。在linux中......
  • Linux 查看服务器开放的端口号
    Linux查看服务器开放的端口号-潇湘隐者-博客园 https://www.cnblogs.com/kerrycode/p/5609010.html端口相关的概念: 在网络技术中,端口(Port)包括逻辑端口和物理端......
  • Linux TOP 交互命令
    LinuxTOP交互命令-hao_xiaoyu-博客园 https://www.cnblogs.com/haoxiaoyu/p/3933924.html今天总结一点top命令的一些交互命令,比较实用!h或者?   显示......