占用CPU或内存最多的几个进程

来自linux中国网wiki
Evan讨论 | 贡献2020年5月12日 (二) 08:08的版本 →‎ps命令
跳到导航 跳到搜索

ps命令

ps -aux | sort -k4nr | head -N

命令详解:
1. head:-N可以指定显示的行数,默认显示10行。
2. ps:参数a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分。ps aux的输出格式如下:

test:~# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.0 318352  8484 ?        Ss   May08   9:10 /sbin/init
root         2  0.0  0.0      0     0 ?        S    May08   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   May08   0:00 [rcu_gp]
root         4  0.0  0.0      0     0 ?        I<   May08   0:00 [rcu_par_gp]
root         6  0.0  0.0      0     0 ?        I<   May08   0:00 [kworker/0:0H-kblockd]
 


 sort -k4nr中(k代表从根据哪一个关键词排序,后面的数字4表示按照第四列排序;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。
 
 注意 这是关键
 本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。-k3表示按照cpu占用率排序。

当前占用CPU最多的几个进程 这里用5

ps -aux | sort -k3nr | head -n  5

脚本化 

!/bin/bash
#author: linuxsa.org   占用CPU最高的 前5个进程 
DATE_TIME=`date +"%Y-%m-%d %H:%M.%S "`
echo "${DATE_TIME}" >> /data/mon/top.log
ps aux | sort -k3nr | head -5 >>/data/mon/top.log
echo -e '\n'

当前占用存最多的5个进程

ps -aux | sort -k4nr | head -n  5

脚本化 同上

top

命令行输入top回车,然后按下大写M按照memory排序,按下大写P按照CPU排序

see also

Linux如何查看当前占用CPU或内存最多的几个进程

Shell脚本-某程序占用CPU及内存监测

找出1小时内占用cpu最多的10个进程的shell脚本