內存 -- 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行數據。(其中的|表示管道操作)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章