標簽:top
操作系統支持多任務并不是計算機同時做很多事情,而是快速的輪換著執行這些任務。linux安排不同的程序等待使用CPU。
進程的工作方式:
當系統啟動的時候,內核先把自己的程序初始化為進程,然后運行一個init的程序,再由init運行一系列稱為init的shell腳本,它們可以啟動所有系統服務(/etc/init/)。其中許多進程以守護程序(daemon)的形式出現,僅在后臺運行,沒有任何用戶接口。這樣,即使沒有登錄系統,至少系統也在執行一些事務。
查看linux 系統進程命令有:top , ps , lsof , netstat
top:查看系統的資源狀況(動態查看進程,,默認情況下是每3分鐘更新一次)
$ top |head
top - 16:07:41 up? 7:14,? 2 users,? load average:
Tasks:195 total,?? 1 running, 194 sleeping,?? 0 stopped,?? 0 zombie
%Cpu(s):? 3.8 us,? 1.0 sy,? 0.0 ni, 94.3 id,? 0.9 wa,? 0.0 hi,? 0.0 si,? 0.0 st
KiB Mem:?? 3996960 total,? 2624532 used,? 1372428 free,?? 126300 buffers
KiB Swap:? 4000764 total,??????? 0 used,? 4000764 free.? 1466592 cached Mem
PID USER? PR NI VIRT RES? SHR S? %CPU %MEM? TIME+ COMMAND???????????????????????????????????????????????????????????????? 2160 vobile 20 0 54504 13768? 3608 S? 6.2 0.3 1:10.25 ibus-daemon
2450 vobile 20 0 322668 72600? 30316 S? 6.2? 1.8? 6:27.18 compiz
3034 vobile 20 0 158688? 25084? 14120 S?? 6.2? 0.6?? 0:55.09 gnome-terminal
分為兩部分,上面市系統概要,下面是進程列表,進程列表以CPU使用率排序。行號字段意義
1top程序名
116:07:41當前時間
1up? 7:14系統正常運行(從啟動到現在)的時間
12 users有2個用戶登錄系統
1load average加載平均值,即等待運行的進程數,這些進程共享CPU。展示了三個數值,每個數值對應不同的時間周期。第一個是最后60秒的平均值,
下一個是前5分鐘的平均值,最后一個是前15分鐘的平均值。若平均值低于1.0,則指示計算機
工作不忙碌。
2Tasks: 195 total進程數目
2running正在運行或準備運行的進程
2sleeping正在睡眠,正在等待一個事件,比如一個按鍵或一個軟件包
2stopped已停止,已經指示進程停止運行
2zombie一個死進程或一個僵尸進程,即一個已經終止的子進程,它的父進程還沒有清空它
3%Cpu(s)CPU正在執行的進程的特性
33.8 us3.8% of the CPU is being used for user
processes. 這意味著進程在內核之外
31.0 sy1.0%的 CPU 時間被用于系統(內核)進程
30.0 ni0.0%的 CPU 時間被用于"nice"(低優先級)進程
394.3 id94.3%的 CPU 時間是空閑的
30.9 wa0.9%的 CPU 時間來等待 I/O
30.0 hi
30.0 si
30.0 st
4KiB Mem展示物理內存的使用情況
5KiB Swap展示交換分區(虛擬內存)的使用情況
字段意義
PID進程號
USER用戶ID進程所有者
PR每個進程的優先級別
NI每個優先級的值
VIRT虛擬內存大小
RES駐留內存大小(KB)CODE+DATA
SHR進程使用共享內存的數量
S進程的狀態?? D=不可中斷的睡眠狀態??? R=運行??? S=睡眠??? T=跟蹤/停止??? Z=僵尸進程
%CPUCPU使用率(進程自最近一次刷新以來所占用的CPU時間和總時間的百分比)
%MEM內存使用率(進程占用的物理內存占總內存的百分比)
TIME+進程自啟動以來所占用的總CPU時間
COMMAND進程的命令名稱
(CODE可執行代碼占用的物理內存大小,DATA可執行代碼以外的部分即數據段+棧占用的物理內存大小
虛擬內存是一個假象的內存空間,在程序運行過程中虛擬內存空間中需要被訪問的部分會被映射到物理內存空間中。虛擬內存空間大只能表示程序運行過程中可訪問的空間比較大,不代表物理內存空間占用也大。
駐留內存,顧名思義是指那些被映射到進程虛擬內存空間的物理內存。
VIRT表示的是進程虛擬內存空間大小。
RES的含義是指進程虛擬內存空間中已經映射到物理內存空間的那部分的大小。
看進程在運行過程中占用了多少內存應該看RS的值而不是VIRT的值。)
top的交互命令:
R? 可以將當前的排序倒轉。
P? 根據CPU使用百分比大小進行排序??? q 該選項將使top沒有任何延遲的進行刷新,如果調用程序有超級用戶權限,那么top將以盡可能高的優先級運行
r重新安排一個進程的優先級別
Ctrl+L? 擦除并且重寫屏幕
h或者?? 顯示幫助畫面,給出一些簡短的命令總結說明。
k? 終止一個進程。系統將提示用戶輸入需要終止的進程PID,以及需要發送給該進程什么樣的信號。?? 一般的終止進程可以使用15信號;如果不能正常結束那就使用信號9強制結束該進程。默認值是信號15。在安全模式中此命令被屏蔽。
i? 忽略閑置和僵死進程。這是一個開關式命令。
q? 退出程序。
r? 重新安排一個進程的優先級別。系統提示用戶輸入需要改變的進程PID以及需要設置的進程優先級值。輸入一個正值將使優先級降低,反之則可以使該進程擁有更高的優先權。默認值是10。
S? 切換到累計模式。
s? 改變兩次刷新之間的延遲時間。系統將提示用戶輸入新的時間,單位為s。如果有小數,就換算成ms。輸入0值則系統將不斷刷新,默認值是5s。需要注意的是如果設置太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,而且系統負載也會大大增加。
f或者F? 從當前顯示中添加或者刪除項目。
o或者O? 改變顯示項目的順序。
l? 切換顯示平均負載和啟動時間信息。
m? 切換顯示內存信息。
t? 切換顯示進程和CPU狀態信息。
c? 切換顯示命令名稱和完整命令行。
M? 根據駐留內存大小進行排序。
P? 根據CPU使用百分比大小進行排序。
T? 根據時間/累計時間進行排序。
W? 將當前設置寫入~/.toprc文件中。這是寫top配置文件的推薦方法
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
參數說明:
d 指定每兩次屏幕信息刷新之間的時間間隔,當然用戶可以使用s交互命令來改變之
p 通過指定監控進程ID來僅僅監控某個進程的狀態
S 切換到指定累計模式
s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險
i 使top不顯示任何閑置或者僵死進程
c 顯示整個命令行而不只是顯示命令名
eg: /usr/bin/top -b -d 1 -n 1? ---每1s輸出1次
標簽:top
原文:http://turnsole.blog.51cto.com/9558446/1678893