使用一下命令查使用内存最多的3个进程
ps -aux | sort -k4nr | head -K
说明:
如果是10个进程,K=10,如果是最高的三个,K=3
说明:ps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)
ps -aux的输出格式如下:
第一行相关词语的意思是:
USER 进程的属主;
PID 进程的ID;PPID 父进程;%CPU 进程占用的CPU百分比;%MEM 占用内存的百分比;NI 进程的NICE值,数值大,表示较少占用CPU时间;VSZ 该进程使用的虚拟内存量(KB);RSS 该进程占用的固定内存量(KB)(驻留中页的数量);TTY 该进程在那个终端上运行(登陆者的终端位置),若与终端无关,则显示(?)。若为pts/0等,则表示由网络连接主机进程WCHAN 当前进程是否正在进行,若为-表示正在进行;START 该进程被触发启动时间;TIME 该进程实际使用CPU运行的时间;COMMAND 命令的名称和参数;
STAT状态位常见的状态字符
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;S 处于休眠状态;T 停止或被追踪;W 进入内存交换 (从内核2.6开始无效);X 死掉的进程 (基本很少见);Z 僵尸进程;< 优先级高的进程N 优先级较低的进程L 有些页被锁进内存;s 进程的领导者(在它之下有子进程);l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);+ 位于后台的进程组;
sort -k4nr中(k代表从第几个位置开始,后面的数字4即是其开始位置,结束位置如果没有,则默认到最后;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。
head -K(K指代行数,即输出前几位的结果)
|为管道符号,将查询出的结果导到下面的命令中进行下一步的操作。
查使用CPU最多的3个进程
ps -aux | sort -k3nr | head -K
这里有一个title(标题)不显示的问题。
怎么显示标题呢,这有一个简单的办法:
ps aux |head -1; ps -aux | sort -k3rn | head -3
在用awk过滤一下不关心的内容;
ps aux |head -1 |awk '{print $1,$2,$3,$8,$11}';ps -aux | sort -k3rn | head -3|awk '{print $1,$2,$3,$8,$11}'