1. 程式人生 > >Linux 檢視CPU、Memory等資源佔用情況

Linux 檢視CPU、Memory等資源佔用情況

linux下獲取佔用CPU資源最多的10個程序,可以使用如下命令組合:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head


linux下獲取佔用記憶體資源最多的10個程序,可以使用如下命令組合:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

 
命令組合解析(針對CPU的,MEN也同樣道理):

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head


該命令組合實際上是下面兩句命令:

ps aux|head -1

ps aux|grep -v PID|sort -rn -k +3|head

 

可以使用一下命令查使用記憶體最多的10個程序

檢視佔用cpu最高的程序

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

或者top (然後按下M,注意這裡是大寫)

檢視佔用記憶體最高的程序

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

或者top (然後按下P,注意這裡是大寫)

該命令組合實際上是下面兩句命令:

ps aux|head -1
ps aux|grep -v PID|sort -rn -k +3|head

其中第一句主要是為了獲取標題(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)。
接下來的grep -v PID是將ps aux命令得到的標題去掉,即grep不包含PID這三個字母組合的行,再將其中結果使用sort排序。
sort -rn -k +3該命令中的-rn的r表示是結果倒序排列,n為以數值大小排序,而-k +3則是針對第3列的內容進行排序,再使用head命令獲取預設前10行資料。(其中的|表示管道操作)

補充:內容解釋

PID:程序的ID
USER:程序所有者
PR:程序的優先級別,越小越優先被執行
NInice:值
VIRT:程序佔用的虛擬記憶體
RES:程序佔用的實體記憶體
SHR:程序使用的共享記憶體
S:程序的狀態。S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值為負數
%CPU:程序佔用CPU的使用率
%MEM:程序使用的實體記憶體和總記憶體的百分比
TIME+:該程序啟動後佔用的總的CPU時間,即佔用CPU使用時間的累加值。
COMMAND:程序啟動命令名稱

 可以使用以下命令查使用記憶體最多的K個程序

方法1:

ps -aux | sort -k4nr | head -K

如果是10個程序,K=10,如果是最高的三個,K=3

說明:ps -aux中(a指代all——所有的程序,u指代userid——執行該程序的使用者id,x指代顯示所有程式,不以終端機來區分)

        ps -aux的輸出格式如下:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  19352  1308 ?        Ss   Jul29   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Jul29   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Jul29   0:11 [migration/0]

     sort -k4nr中(k代表從第幾個位置開始,後面的數字4即是其開始位置,結束位置如果沒有,則預設到最後;n指代numberic sort,根據其數值排序;r指代reverse,這裡是指反向比較結果,輸出時預設從小到大,反向後從大到小。)。本例中,可以看到%MEM在第4個位置,根據%MEM的數值進行由大到小的排序。

     head -K(K指代行數,即輸出前幾位的結果)

     |為管道符號,將查詢出的結果導到下面的命令中進行下一步的操作。

方法2:top (然後按下M,注意大寫)