Linux 常用命令之 top 命令詳解

xugege發表於2019-06-26

top:動態檢視程式變化,監控linux的系統狀況, 是Linux下常用的效能分析工具,能夠實時顯示系統中各個程式的資源佔用狀況,類似於Windows的工作管理員。
下面詳細介紹它的使用方法:
Linux常用命令之top命令詳解
統計資訊區 
前五行是系統整體的統計資訊。

  • 第一行是任務佇列資訊,同 uptime 命令的執行結果。其內容如下:
    Linux常用命令之top命令詳解
    07:25:19   當前時間 
    up 246 days   系統執行時間
    2:34
    4 user   當前登入使用者數 
    load average: 2.51, 2.53, 2.53   系統負載,即任務佇列的平均長度。 
    三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。
  • 第二、三行為程式和CPU的資訊。當有多個CPU時,這些內容可能會超過兩行。內容如下: 
    Tasks:
    total   程式總數 
    running   正在執行的程式數 
    sleeping   睡眠的程式數 
    stopped   停止的程式數 
    zombie   殭屍程式數 
    Cpu(s): 
    us   使用者空間佔用CPU百分比 
    sy   核心空間佔用CPU百分比 
    ni   使用者程式空間內改變過優先順序的程式佔用CPU百分比 
    id   空閒CPU百分比 
    wa   等待輸入輸出的CPU時間百分比 
    hi   硬中斷(Hardware IRQ)佔用CPU的百分比
    si   軟中斷(Software Interrupts)佔用CPU的百分比
    st   (Steal time) 是當 hypervisor 服務另一個虛擬處理器的時候,虛擬 CPU 等待實際 CPU 的時間的百分比。
    Mem: 
    total   實體記憶體總量 
    free   空閒記憶體總量 
    used   使用的實體記憶體總量 
    buff/cache   用作核心快取的記憶體量
    Swap: 
    total   交換區總量 
    free   空閒交換區總量 
    used   使用的交換區總量
    avail Mem 緩衝的交換區總量

    記憶體中的內容被換出到交換區,而後又被換入到記憶體,但使用過的交換區尚未被覆蓋, 
    該數值即為這些內容已存在於記憶體中的交換區的大小。 
    相應的記憶體再次被換出時可不必再對交換區寫入。
    程式資訊區
    統計資訊區域的下方顯示了各個程式的詳細資訊。首先來認識一下各列的含義。

    PID 程式id 
    PPID 父程式id 
    RUSER Real user name 
    d UID 程式所有者的使用者id 
    e USER 程式所有者的使用者名稱 
    f GROUP 程式所有者的組名 
    g TTY 啟動程式的終端名。不是從終端啟動的程式則顯示為 ? 
    h PR 優先順序 
    i NI nice值。負值表示高優先順序,正值表示低優先順序 
    j P 最後使用的CPU,僅在多CPU環境下有意義 
    k %CPU 上次更新到現在的CPU時間佔用百分比 
    l TIME 程式使用的CPU時間總計,單位秒 
    m TIME+ 程式使用的CPU時間總計,單位1/100秒 
    n %MEM 程式使用的實體記憶體百分比 
    o VIRT 程式使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES 
    p SWAP 程式使用的虛擬記憶體中,被換出的大小,單位kb。 
    q RES 程式使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA 
    r CODE 可執行程式碼佔用的實體記憶體大小,單位kb 
    s DATA 可執行程式碼以外的部分(資料段+棧)佔用的實體記憶體大小,單位kb 
    t SHR 共享記憶體大小,單位kb 
    u nFLT 頁面錯誤次數 
    v nDRT 最後一次寫入到現在,被修改過的頁面數。 
    w S 程式狀態。 
    D=不可中斷的睡眠狀態 
    R=執行 
    S=睡眠 
    T=跟蹤/停止 
    Z=殭屍程式 
    x COMMAND 命令名/命令列 
    y WCHAN 若該程式在睡眠,則顯示睡眠中的系統函式名 
    z Flags 任務標誌,參考 sched.h 

    預設情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來更改顯示內容。

top命令選項

top [-] [d] [p] [q] [C] [S] [s] [n] 
-d 後跟秒數,指定每兩次螢幕資訊重新整理之間的時間間隔,表示程式介面更新時間(預設為5秒)。如:將top程式表在/tmp/top.txt中列印2次。
 top -b -n 2 > /tmp/top.txt
-p程式ID    如:檢視程式號為1的程式。 top -p 1
-q 該選項將使top沒有任何延遲的進行重新整理。如果呼叫程式有超級使用者許可權,那麼top將以儘可能高的優先順序執行。 
-S 指定累計模式 
-s 使top命令在安全模式中執行。這將去除互動命令所帶來的潛在危險。 
-i 使top不顯示任何閒置或者僵死程式。 
-c 顯示整個命令列而不只是顯示命令名 

Top命令常見的操作

  • 1、 2500毫秒重新整理一次TOP內容,總共5次,輸出內容存放到performace.txt檔案中
     top -b -d 2.5 -n 5 > performace.txt

    注:要將內容輸出到檔案中,必須使用-b,表示批處理選項

  • 2、 TOP命令如何快速按%CPU、%MEM、TIME+列排序
    • a) %CPU:使用大寫字母按鍵:P
           b) %MEM:使用大寫字母按鍵:M
         
      c) T IME+使用大寫字母按鍵: T

      注:TOP預設排序為倒序,如果確實需要升序排序,可以使用大寫字母按鍵:R

  • 3、TOP命令中顯示其它列值、將兩列互換等
        a). 選擇顯示列或隱藏列:使用小寫字母按鍵:f
       
    c). 交換列顯示順序:使用小寫字母按鍵: o
        * b). 選擇需要排序的列:使用大寫字母按鍵:F

相關文章