close

top是效能分析工具,能夠即時顯示系統中各個行程的資源佔用狀況。

ubuntu@ubuntu:~$ top              
top - 08:15:01 up 44 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  63 total,   1 running,  62 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1741400 total,  1600560 free,    73184 used,    67656 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1557120 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1 root      20   0   56816   6548   5264 S  0.0  0.4   0:00.95 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.02 ksoftirqd/0
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
    6 root      20   0       0      0      0 S  0.0  0.0   0:00.04 kworker/u2:0
    7 root      20   0       0      0      0 S  0.0  0.0   0:00.03 rcu_sched
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
    9 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
   10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-drain
   11 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 watchdog/0
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 cpuhp/0
   13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
   14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
   15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd
   16 root      20   0       0      0      0 S  0.0  0.0   0:00.00 oom_reaper
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
   18 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kcompactd0

top上半部顯示的是系統資源使用情,下半部是系統行程的資訊。
上半部欄位說明
第1行
08:15:01:目前時間
up 44 min:主機開機時間
1 user:目前登入系統使用者數
load average: 1.00, 1.23, 0.86:系統每1分鐘、5分鐘、15分鐘的負載情況。
load average資料是每隔5秒鐘檢查一次活躍的進程數,然後按特定演算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。
第2行
Tasks:  63 total,   1 running,  62 sleeping,   0 stopped,   0 zombie:
目前系統共63個行程,1個正在執行(running),62個休眠狀態(sleeping),0個已停止(stopped),0個僵屍狀態(zombie)
第3行
%Cpu(s):  1.1 us,  0.3 sy,  0.0 ni,100.0 id,  0.4 wa,  0.02 hi,  0.1 si,  0.0 st:
1.1%us — 用戶空間佔用CPU的百分比
0.3% sy — 內核空間佔用CPU的百分比
0.0% ni — 改變過優先順序的進程佔用CPU的百分比
0.4% wa — IO等待佔用CPU的百分比
0.1% hi — 硬中斷(Hardware IRQ)佔用CPU的百分比
0.0% si — 軟中斷(Software Interrupts)佔用CPU的百分比
第4行
KiB Mem :  1741400 total,  1600560 free,    73184 used,    67656 buff/cach
記憶體使用狀態:
1741400 total:實體記憶體容量
1600560 free:剩餘記憶體容量
73184 used:已使用的記憶體容量
67656 buff/cach:暫存記憶體容量
第5行
KiB Swap:        0 total,        0 free,        0 used.  1557120 avail Mem 
swap使用狀態:
0 total:swap總容量
0 free:已使用的swap容量
0 used:剩餘swap容量
1557120 avail Mem 暫存記憶體容量

下半部欄位說明:
PID — 行程id(Process ID)
USER — 該行程使用者
PR — 行程優先順序
NI — nice值(值越小優先權優高)
VIRT — 該行程使用的虛擬記憶體總量,單位kb(VIRT=SWAP+RES)
RES — 該行程程使用的、未被使用的實體記憶體大小,單位kb(RES=CODE+DATA)
SHR — 共用記憶體大小(單位kb)
S — 行程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程
%CPU — 上次更新到現在的CPU時間佔用百分比
%MEM — 行程使用的實體記憶體百分比
TIME+ — 行程使用的CPU時間總計,單位1/100秒
COMMAND — 行程名稱

top按鍵說明
按鍵 說明
1 顯示單一/多cpu使用情形切換
B 將欄位值做粗體/一般字體切換
e/E 時間顯示單位切換,可分s,ms,gs,ts,ps
f/F Fields Management可自行選擇要顯示的欄位
h 叫出help說明
k 刪除指定行程
l 隱藏/顯示load average(第1行)資訊切換
L 尋找字串
m 依據mem用量進行排序
M 隱藏/顯示memory info (第4行)資訊切換
P 依據cpu用量進行排序
q 離開top
R 修改nice值
S 更改延遲時間(預設3秒)
t 隱藏/顯示tasks(第2.3行)資訊切換
T 依據Time+時間/累計時間進行排序
z 顯示顏色切換
Z 更改排序方式/顏色切換時之顏色

除了開啟top觀察系統資訊外top也可以使用指令將資訊直接回傳至營幕,若再使用">"或">>"則可將結果匯出為檔案

top常用參數
參數 說明
b Batch mode
d 指定更新時間(單位:秒)
o 指定要輸出的欄位名稱
p 指定要觀察的pid
u 指定要觀察的使用者名稱

 

ubuntu@ubuntu:~$ top -b -d 2 -p 6164  #使用batch mode,觀察pid 6164的行程並每2秒更新一次
top - 15:25:19 up 13 days,  7:14,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.2 sy,  0.0 ni, 99.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    602636 total,   383788 used,   218848 free,    13528 buffers
KiB Swap:   524284 total,    26740 used,   497544 free.   236088 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 6164 root      20   0  434960  27152   2824 S  0.0  4.5  71:22.76 mongod

top - 15:25:21 up 13 days,  7:14,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.0 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    602636 total,   383788 used,   218848 free,    13528 buffers
KiB Swap:   524284 total,    26740 used,   497544 free.   236088 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 6164 root      20   0  434960  27152   2824 S  0.0  4.5  71:22.76 mongod   #畫面會每2秒更新一次

ubuntu@ubuntu:~$ top -d 2 -u ubuntu                #觀察使用者ubuntu所執行的行程並每2秒更新一次
top - 15:30:25 up 13 days,  7:19,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  87 total,   2 running,  85 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    602636 total,   383908 used,   218728 free,    13540 buffers
KiB Swap:   524284 total,    26740 used,   497544 free.   236088 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                         
12227 ubuntu    20   0  103592   4044   3048 S  0.0  0.7   0:00.51 sshd                                            
12229 ubuntu    20   0   21332   5244   3244 S  0.0  0.9   0:00.08 bash                                            
12230 ubuntu    20   0   12836   1916   1780 S  0.0  0.3   0:00.00 sftp-server                                     
12662 ubuntu    20   0   23668   2980   2508 R  0.0  0.5   0:00.00 top               #不加-b參數會進入top內並每2秒更新一次

ubuntu@ubuntu:~$ top -b -o +%MEM | head -n 17                #使用batch mode,以記憶體做為排序依據,並只列出前17行
top - 15:46:13 up 13 days,  7:35,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  88 total,   1 running,  87 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.2 sy,  0.0 ni, 99.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    602636 total,   387760 used,   214876 free,    14064 buffers
KiB Swap:   524284 total,    26740 used,   497544 free.   240212 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 6164 root      20   0  434960  27152   2824 S  0.0  4.5  71:27.35 mongod
 1376 root      20   0   52316  10520   3720 S  0.0  1.7   0:30.89 google_accounts
 1374 root      20   0   49960   9692   3056 S  0.0  1.6   0:19.92 google_clock_sk
 1375 root      20   0   49836   9680   3268 S  0.0  1.6   0:30.88 google_ip_forwa
12115 root      20   0  103592   6492   5524 S  0.0  1.1   0:00.00 sshd
12229 ubuntu    20   0   21332   5244   3244 S  0.0  0.9   0:00.10 bash
12227 ubnutu    20   0  103592   4044   3048 S  0.0  0.7   0:00.62 sshd
    1 root      20   0   33528   3172   1996 S  0.0  0.5   0:03.47 init
12726 ubuntu    20   0   23548   2892   2548 R  0.0  0.5   0:00.00 top
 1520 root      20   0   61396   2336   2224 S  0.0  0.4   0:01.62 sshd

 


參考資料:
每天一个linux命令(44):top命令
鳥哥的Linux私房菜 - top:動態觀察程序的變化
Linux 用 ps 與 top 指令找出最耗費 CPU 與記憶體資源的程式

arrow
arrow
    文章標籤
    Linux top
    全站熱搜

    小必 發表在 痞客邦 留言(0) 人氣()