代码改变世界

性能测试分析过程(三)linux下查看最消耗CPU/内存的进程

2019-08-24 09:49  清风软件测试开发  阅读(1641)  评论(0编辑  收藏  举报

linux下查看最消耗CPU  内存的进程

1.CPU占用最多的前10个进程: 

ps auxw|head -1;ps auxw|sort -rn -k3|head -10 


2.内存消耗最多的前10个进程 

ps auxw|head -1;ps auxw|sort -rn -k4|head -10 


3.虚拟内存使用最多的前10个进程 

ps auxw|head -1;ps auxw|sort -rn -k5|head -10

 

ps auxw

u:以用户为主的格式来显示程序状况

x:显示所有程序,不以终端机来区分 

w:采用宽阔的格式来显示程序状况

ps auxw|head -1    输出表头

尾部的 head -10     输出前10列

sort -rn -k5

-n是按照数字大小排序,-r是以相反顺序,-k 是指定需要排序的栏位

USER      //用户名------------------1
%CPU      //进程占用的CPU百分比----------------2
%MEM      //占用内存的百分比-------------------3
VSZ       //该进程使用的虚拟內存量(KB)-----------4
RSS       //该进程占用的固定內存量(KB)resident set size-----------5
STAT      //进程的状态-------------6
START     //该进程被触发启动时间--------------7
TIME      //该进程实际使用CPU运行的时间------------8

去掉x参数的结果

ps auw | head -1; ps auw|sort -rn -k4 | head -10

PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称

 

 ================================================================================================================

 

linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

命令组合解析(针对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

其中第一句(ps aux|head -1)主要是为了获取标题(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行数据。(其中的|表示管道操作)