定位linux系统的内存问题时,我们经常需要找出系统中占用内存的前几名。除了使用top命令之外,还可以通过ps + sort + head命令来实现。
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head #查看内存使用前十名
这个命令很长,死记硬背肯定是不行的,但是只要理解了这个用法的思路,用起来就是很方便了。
命令详解
一、ps + grep + head
ps aux|head -1;ps aux|grep -v PID
- 要查看进程肯定离不开ps命令,由于系统中的进程会比较多,通过ps 会结合grep一起使用;
- 使用grep过滤时常常会把ps命令的第1行也过滤掉,这里的一个技巧是使用两次ps,第一个
ps + head
用于展示头信息; 第二个ps + grep
用于过滤不需要的信息
二、 sort + head
sort -rn -k +4
- 要排序自然离不开sort,下面介绍一下sort的常用方法:
-
-n
按照数字排序,默认按照ASCII排序 -
-r
按照逆序排序,默认升序 -
-u
排序去重 -
-t
指定分割分割符,默认按照空格分割 -
-k
当一行可以被分割符分割成多个字段时,可以指定按照第几个字段进行排序
-
- head命令比较简单,默认显示10行。
-
-n
指定行数 -
-c
指定字节数
-
Top
- linux:
- shift + p : 按照cpu排序
- shift + m:按照内存排序
- mac
- o + cpu : 按照cpu排序
- o + mem: 按照内存排序