後面會介紹一些linux中常用的營運命令,利用這些命令我們能夠迅速的定位問題所在,並解決問題。今天先從最常見的開始-TOP命令。
命令含義介紹
運行top命令之後,會出現如下內容
top - 03:37:17 up 32 min, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 10 total, 1 running, 9 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: 151552 total, 144720 used, 6832 free, 0 buffers
KiB Swap: 36864 total, 1164 used, 35700 free, 125976 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 3016 1536 1288 S 0.0 1.0 0:00.07 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/5670
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper/5670
1602 root 20 0 9140 2524 2408 S 0.0 1.7 0:00.10 sshd
1604 root 20 0 3036 1464 1328 S 0.0 1.0 0:00.00 bash
1621 root 20 0 6340 732 628 S 0.0 0.5 0:00.00 sshd
24550 root 20 0 4428 1520 1112 S 0.0 1.0 0:00.08 ss-server
24576 root 20 0 9144 2996 2396 S 0.0 2.0 0:00.02 sshd
24578 root 20 0 3028 1640 1324 S 0.0 1.1 0:00.00 bash
24582 root 20 0 2904 1280 912 R 0.0 0.8 0:00.02 top
1、系統統計資訊
前五行是系統整體的統計資訊。其中,第一行是任務隊列資訊,同 uptime 命令的執行結果。其含義如下
03:37:17 目前時間
up 32 min 系統已耗用時間
2 user 當前登入使用者數
load average: 0.00, 0.00, 0.00 系統負載,即任務隊列的平均長度。三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。
第二、三行為進程和CPU的資訊。當有多個CPU時,這些內容可能會超過兩行。其含義如下:
Tasks: 10 total 進程總數
1 running 正在啟動並執行進程數
9 sleeping 睡眠的進程數
0 stopped 停止的進程數
0 zombie 殭屍進程數
Cpu(s): 0.0% us 使用者空間佔用CPU百分比
0.0% sy 核心空間佔用CPU百分比
0.0% ni 使用者進程空間內改變過優先順序的進程佔用CPU百分比
100.0% id 空閑CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比,與IO效能有關
0.0% hi
0.0% si
最後兩行為記憶體資訊。內容如下:
KiB Mem: 151552 total 實體記憶體總量
144720 used 使用的實體記憶體總量
6832 free 空閑記憶體總量
0 buffers 用作核心緩衝的記憶體量
KiB Swap: 36864 total 交換區總量
1164 used 使用的交換區總量
35700 free 空閑交換區總量
125976 cached 緩衝的交換區總量。
記憶體中的內容被換出到交換區,而後又被換入到記憶體,但使用過的交換區尚未被覆蓋,
該數值即為這些內容已存在於記憶體中的交換區的大小。
相應的記憶體再次被換出時可不必再對交換區寫入。
2、進程資訊
在進程資訊中,有如下幾列
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
下面詳細解釋這些參數
PID 進程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 進程使用的實體記憶體百分比
COMMAND 命令名/命令列
命令用法介紹
TOP命令的使用格式為
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
各項參數的說明如下:
d 指定每兩次螢幕資訊重新整理之間的時間間隔。當然使用者可以使用s互動命令來改變之。
p 通過指定監控進程ID來僅僅監控某個進程的狀態。
q 該選項將使top沒有任何延遲的進行重新整理。如果調用程式有超級使用者權限,那麼top將以儘可能高的優先順序運行。
S 指定累計模式
s 使top命令在安全模式中運行。這將去除互動命令所帶來的潛在危險。
i 使top不顯示任何閑置或者僵死進程。
c 顯示整個命令列而不只是顯示命令名
下面介紹在top命令執行過程中可以使用的一些互動命令。從使用角度來看,熟練的掌握這些命令比掌握選項還重要一些。這些命令都是單字母的,如果在命令列選項中使用了s選項,則可能其中一些命令會被屏蔽掉。
Ctrl+L 擦除並且重寫螢幕。
h或者? 顯示協助畫面,給出一些簡短的命令總結說明。
k 終止一個進程。系統將提示使用者輸入需要終止的進程PID,以及需要發送給該進程什麼樣的訊號。
一般的終止進程可以使用15訊號;如果不能正常結束那就使用訊號9強制結束該進程。預設值是訊號15。
在安全模式中此命令被屏蔽。
i 忽略閑置和僵死進程。這是一個開關式命令。
q 退出程式。
r 重新安排一個進程的優先順序別。系統提示使用者輸入需要改變的進程PID以及需要設定的進程優先順序值。
輸入一個正值將使優先順序降低,反之則可以使該進程擁有更高的優先權。預設值是10。
S 切換到累計模式。
s 改變兩次重新整理之間的延遲時間。系統將提示使用者輸入新的時間,單位為s。如果有小數,就換算成m s。
輸入0值則系統將不斷重新整理,預設值是5 s。需要注意的是如果設定太小的時間,很可能會引起不斷重新整理,
從而根本來不及看清顯示的情況,而且系統負載也會大大增加。
f或者F 從當前顯示中添加或者刪除項目。
o 或者O 改變顯示項目的順序。
l 切換顯示平均負載和啟動時間資訊。
m 切換顯示記憶體資訊。
t 切換顯示進程和CPU狀態資訊。
c 切換顯示命令名稱和完整命令列。
M 根據駐留記憶體大小進行排序。
P 根據CPU使用百分比大小進行排序。
T 根據時間/累計時間進行排序。
W 將當前設定寫入~/.toprc檔案中。這是寫top設定檔的推薦方法。