top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器.下面詳細介紹它的使用方法.
top - 02:53:32 up 16 days, 6:34, 17 users, load average: 0.24, 0.21, 0.24
Tasks: 481 total, 3 running, 474 sleeping, 0 stopped, 4 zombie
Cpu(s): 10.3%us, 1.8%sy, 0.0%ni, 86.6%id, 0.5%wa, 0.2%hi, 0.6%si, 0.0%st
Mem: 4042764k total, 4001096k used, 41668k free, 383536k buffers
Swap: 2104472k total, 7900k used, 2096572k free, 1557040k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
32497 jacky 20 0 669m 222m 31m R 10 5.6 29:27.62 firefox
4788 yiuwing 20 0 257m 18m 13m S 5 0.5 5:42.44 konsole
5657 Liuxiaof 20 0 585m 159m 30m S 4 4.0 5:25.06 firefox
4455 xiefc 20 0 542m 124m 30m R 4 3.1 7:23.03 firefox
6188 Liuxiaof 20 0 191m 17m 13m S 4 0.5 0:01.16 konsole
統計信息區前五行是系統整體的統計信息.第一行是任務隊列信息,同 uptime 命令的執行結果.其內容如下:
01:06:48 當前時間
up 1:22 系統運行時間,格式為時:分
1 user 當前登錄用戶數
load average: 0.06, 0.60, 0.48 系統負載,即任務隊列的平均長度.
三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值.
第二、三行為進程和CPU的信息.當有多個CPU時,這些內容可能會超過兩行.內容如下:
Tasks: 29 total 進程總數
1 running 正在運行的進程數
28 sleeping 睡眠的進程數
0 stopped 停止的進程數
0 zombie 殭屍進程數
Cpu(s): 0.3% us 用戶空間佔用CPU百分比
1.0% sy 內核空間佔用CPU百分比
0.0% ni 用戶進程空間內改變過優先順序的進程佔用CPU百分比
98.7% id 空閑CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si
最后兩行為內存信息.內容如下:
Mem: 191272k total 物理內存總量
173656k used 使用的物理內存總量
17616k free 空閑內存總量
22052k buffers 用作內核緩存的內存量
Swap: 192772k total 交換區總量
0k used 使用的交換區總量
192772k free 空閑交換區總量
123988k cached 緩衝的交換區總量.
內存中的內容被換出到交換區,而後又被換入到內存,但使用過的交換區尚未被覆蓋,
該數值即為這些內容已存在於內存中的交換區的大小.
相應的內存再次被換出時可不必再對交換區寫入.
進程信息區統計信息區域的下方顯示了各個進程的詳細信息.來認識一下各列的含義.
序號 列名 含義
a PID 進程id
b PPID 父進程id
c 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 列.可以通過下面的快捷鍵來更改顯示內容.
更改顯示內容通過 f 鍵可以選擇顯示的內容.按 f 鍵之後會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,最后按回車鍵確定.
按 o 鍵可以改變列的顯示順序.按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動.最后按回車鍵確定.
按大寫的 F 或 O 鍵,然後按 a-z 可以將進程按照相應的列進行排序.而大寫的 R 鍵可以將當前的排序倒轉.
==============================
top命令使用過程中,還可以使用一些交互的命令來完成其它參數的功能.這些命令是通過快捷鍵啟動的.
<空格>:立刻刷新.
P:根據CPU使用大小進行排序.
T:根據時間、累計時間排序.
q:退出top命令.
m:切換顯示內存信息.
t:切換顯示進程和CPU狀態信息.
c:切換顯示命令名稱和完整命令行.
M:根據使用內存大小進行排序.
W:將當前設置寫入~/.toprc文件中.這是寫top配置文件的推薦方法.
可以看到,top命令是一個功能十分強大的監控系統的工具,對於系統管理員而言尤其重要.但是,它的缺點是會消耗很多系統資源.
應用實例
使用top命令可以監視指定用戶,預設情況是監視所有用戶的進程.如果想查看指定用戶的情況,在終端中按「U」鍵,然後輸入用戶名,系統就會切換為指定用戶的進程運行界面.
a.作用
free命令用來顯示內存的使用情況,使用許可權是所有用戶.
b.格式
free [-b -k -m] [-o] [-s delay] [-t] [-V]
c.主要參數
-b -k -m:分別以位元組(KB、MB)為單位顯示內存使用情況.
-s delay:顯示每隔多少秒數來顯示一次內存使用情況.
-t:顯示內存總和列.
-o:不顯示緩衝區調節列.
d.應用實例
free命令是用來查看內存使用情況的主要命令.和top命令相比,它的優點是使用簡單,並且只佔用很少的系統資源.通過-S參數可以使用free命令不間斷地監視有多少內存在使用,這樣可以把它當作一個方便實時監控器.
#free -b -s5
使用這個命令后終端會連續不斷地報告內存使用情況(以位元組為單位),每5秒更新一次.
[火星人 ] 在Linux下查看CPU的信息已經有524次圍觀