首頁 > 軟體

Linux top 命令入門知識

2020-06-16 18:06:56

top命令是Linux下使用相當頻繁的一個命令,可是有一天突然發現,原來自己對他還是知之甚少(尤其是記憶體狀態這塊兒),所以照著man文件和參閱了一些資料,整理如下

執行方式

top -hv | -bcHisSM -d delay -n iterations -p pid [,pid...]
其中:h 輸出幫助資訊;v輸出版本資訊,這些命令列選項多數可以通過互動式命令改變top輸出,進入top以後按‘h’可現實互動式的命令清單,如下圖

-b: ‘批次模式’,用來將輸出重定向到指定檔案,一般配合-n 指定輸出幾次統計資訊,使用模式
    top -n 3 -b > /tmp/top.tmp

-c: 顯示產生進程的完成命令

-H: 執行緒切換模式,所有獨立的執行緒都會被顯示在結果中(以執行緒為粒度),不加此引數的話,top會以進程為粒度來顯示資訊
-i: 不顯示idled或zombied進程
-s: 安全模式

-S: 累計模式,顯示該進程以及他的所有子進程(包括已死的)總共佔用的cpu時間
-M: 記憶體統計相關--顯示記憶體單位(k/M/G)並且顯示浮點值(帶小數點)的值,如下圖

-d: 指定重新整理時間,預設重新整理時間是3s

-n: 執行狀態重新整理的次數
-p: 指定pid 多個pid以‘逗號’分開,只顯示指定pid進程的狀態


欄位解釋:
PID、PPID(父pid)、USER、GROUP、TTY這些欄位都是字面意思,就不多說了。著重說一下cpu和記憶體相關欄位的意思
top預設輸出如下

按 f 可以進入互動模式,選擇更多的輸出項,途中紅框內為預設顯示的專案

我們選擇顯示更多的cpu和記憶體相關的專案,

增加顯示專案之後,top輸出如下

我們以上圖輸出介紹個欄位cpu和記憶體相關欄位含義:

VIRT -- (kb)任務使用的虛擬記憶體總量,包含所有交換到記憶體的code、data和shared libraries plus pages.  VIRT = SWAP + RES.只要進程申請了記憶體,都會計入此值。;例如進程想核心申請了100M記憶體,此值增加100M,而不管核心實際分配給了多少

RES -- (kb)常駐記憶體數量,即此任務使用的非交換分割區的記憶體(即實體記憶體)

SHR -- (kb)任務所使用的共用記憶體的數量,他只簡單的反映了可能與其他進程共用的記憶體
        SHR是RES中”對映至檔案”的實體記憶體總和。包括:
            程式的程式碼段。
            動態庫的程式碼段。
            通過mmap做的檔案對映。
            通過mmap做的匿名對映,但指明了MAP_SHARED屬性。

註:RES要和SHR結合者看,核心把實體記憶體分為了兩部分,一部分是對映至檔案的,一部分是沒有對映至檔案的即匿名記憶體,完全和共不共用沒有關係!

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2015-02/114109p2.htm


IT145.com E-mail:sddin#qq.com