内存 -- ps 查看当前进程的内存消耗

在linux下通常通过free命令查看当前的内存消耗情况

例如:

admin@k5:/data/user/3798c # free
             total         used         free       shared      buffers
Mem:       1827576      1215184       612392         1584        11732
-/+ buffers:            1203452       624124
Swap:            0            0            0

但当想要知道对用的内存被哪些进程使用了?而哪些进程使用最多?

可以使用ps命令,再加上对应的过滤来实现。

首先解释对应的ps每一行对应的意义:

admin@k5:/data/user/3798c # ps -aux | head -1
USER     PID       PPID      VSIZE      RSS         WCHAN    PC        NAME
所有者    进程ID    父进程ID    虚拟内存    物理内存    /        pc指针    进程名

使用ps命令查看当前消耗物理内存最多的前几个进程:

admin@k5:/data/user/3798c # ps aux|head -1;ps|grep -v PID|sort -rn -k 5|head                                                                                                                            
USER     PID   PPID  VSIZE  RSS     WCHAN    PC        NAME
root      1815  1     209020 759012 ffffffff b6de77cc S /system/bin/bootanimation
system    1998  1541  1063884 97780 ffffffff b6dcab60 S system_server
u0_a10    2160  1541  986848 89392 ffffffff b6dcab60 S com.android.systemui
u0_a45    2366  1541  986084 77296 ffffffff b6dcab60 S com.android.launcher
root      1541  1     940236 75516 ffffffff b6dcb0c0 S zygote
radio     2333  1541  964964 60672 ffffffff b6dcab60 S com.android.phone
u0_a22    2747  1541  968344 54216 ffffffff b6dcab60 S com.android.email
u0_a4     2124  1541  956236 50644 ffffffff b6dcab60 S android.process.media
system    2670  1541  970640 46924 ffffffff b6dcab60 S com.android.settings
u0_a19    2724  1541  954600 46408 ffffffff b6dcab60 S com.android.deskclock

其中第一句主要是为了获取标题(USER     PID   PPID  VSIZE  RSS     WCHAN    PC        NAME)。
接下来的grep -v PID是将ps aux命令得到的标题去掉,即grep不包含PID这三个字母组合的行,再将其中结果使用sort排序。
sort -rn -k 5该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k 5则是针对第5列的内容进行排序(第五行表示当前进程使用的物理内存),再使用head命令获取默认前10行数据。(其中的|表示管道操作)

猜你喜欢

转载自blog.csdn.net/Ivan804638781/article/details/97130332