2015年2月24日 星期二

Linux top 指令

  • 查看多核 CPU 個別核心的負載
    執行 top 指令,在 top 顯示程序狀態的畫面下,按數字「1」即會顯示每個核心的負載註況。
    如果終端視窗畫面太小,會出現「Sorry, terminal is not big enough」訊息,將視窗調大即可。
    畫面如下:
    top - 21:12:44 up 94 days,  9:11,  2 users,  load average: 0.41, 0.46, 0.47
    Tasks: 419 total,   1 running, 418 sleeping,   0 stopped,   0 zombie
    Cpu0  :  7.4%us,  0.7%sy,  0.0%ni, 92.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu1  :  3.7%us,  0.3%sy,  0.0%ni, 95.7%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu2  :  3.6%us,  0.3%sy,  0.0%ni, 96.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu3  :  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu4  :  2.0%us,  0.0%sy,  0.0%ni, 98.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu5  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu6  : 15.9%us,  1.4%sy,  0.0%ni, 82.4%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
    Cpu7  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu8  :  6.0%us,  1.0%sy,  0.0%ni, 93.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu9  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu10 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu11 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu12 :  7.3%us,  0.7%sy,  0.0%ni, 91.7%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
    Cpu13 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu14 : 10.0%us,  1.0%sy,  0.0%ni, 88.7%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
    Cpu15 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu16 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu17 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu18 :  2.0%us,  0.7%sy,  0.0%ni, 97.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu19 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu20 : 29.5%us,  0.7%sy,  0.0%ni, 69.5%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
    Cpu21 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu22 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu23 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:  65925940k total, 10253404k used, 55672536k free,   345660k buffers
    Swap: 33030140k total,        0k used, 33030140k free,  5865436k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    46994 mysql     20   0 22.5g 3.0g 8680 S 96.0  4.8 519:42.83 mysqld
     1878 root      20   0     0    0    0 S  0.7  0.0  21:36.20 jbd2/dm-2-8
    15635 root      20   0 15300 1496  936 R  0.7  0.0   0:00.37 top
      155 root      20   0     0    0    0 S  0.3  0.0   3:52.53 kblockd/1
    
  • 顯示某個程序最後使用哪個核心
    在 top 畫面下,按「f」,選擇顯示「Last Used Cpu (SMP)」欄位
  • 改變排序
    在 top 畫面下,按
    「M」:依使用記憶裡大小排序
    「P」:依使用 CPU 大小排序(預設)
    「T」:依使用時間大小排序
    「N」:依 PID 大小排序
  • top 畫面區塊顯示切換
    「t」:是否顯示第二列(Tasks)
    「m」:是否顯示第三列(Mem)、第四列(Swap)
  • 第二列(Tasks)資訊說明
    us (user):使用者空間 (user space) 佔用 CPU 百分比
    sy (system):核心空間 (kernel space) 佔用 CPU 百分比
    ni (nice):nice 值比一般值 0 大 (優先序較低) 的進程佔用 CPU 百分比
    id (idle):CPU 閒置時間百分比
    wa (iowait):CPU 等待輸入/輸出的百分比。值過高,表示系統的儲存或網路 I/O 效能有問題
    hi (H/W Interrupt):CPU 處理硬體中斷時間的百分比
    si (S/W Interrupt):CPU 處理軟體中斷時間的百分比
    st: (Steal):在如 Xen 等虛擬環境下 CPU 運作虛擬機器時間的百分比
  • 改變畫面更新時間
    在 top 畫面下,按「s」或「d」進行設定
  • 只查看某個 user 的進程
    在 top 畫面下,按「u」,輸入 user 帳號名稱。若要改回查看所有進程,則留空白直接按Enter
  • 只查看某個 PID 進程
    下 top 指令時,使用「 -p」參數設定
    top -p 1234 #只到 1234 這個 PID
    top -p 1234,5533 #多個 PID 用逗號分隔
    
  • kill 終止某進程
    在 top 畫面下,按「k」,再輸入 PID
  • 改變進程優先權(nice)
    在 top 畫面下,按「r」後進行設定,數字越小越優先。
  • 將目前畫面的顯示設定儲存
    在 top 畫面下,按「W」後會儲存到".toprc"檔

參考:
linux查看多核负载
[問題] process目前佔用的cpu core
使用 top 監控進程 (process)

1 則留言: