首先介紹top中一些欄位的含義:
virt:virtual memory usage 虛擬記憶體
1、程序「需要的」虛擬記憶體大小,包括程序使用的庫、**、資料等
2、假如程序申請100m的記憶體,但實際只使用了10m,那麼它會增長100m,而不是實際的使用量
res:resident memory usage 常駐記憶體
1、程序當前使用的記憶體大小,但不包括swap out
2、包含其他程序的共享
3、如果申請100m的記憶體,實際使用10m,它只增長10m,與virt相反
4、關於庫占用記憶體的情況,它只統計載入的庫檔案所佔記憶體大小
shr:shared memory 共享記憶體
1、除了自身程序的共享記憶體,也包括其他程序的共享記憶體
2、雖然程序只使用了幾個共享庫的函式,但它包含了整個共享庫的大小
3、計算某個程序所佔的物理記憶體大小公式:res – shr
4、swap out後,它將會降下來
data
1、資料占用的記憶體。如果top沒有顯示,按f鍵可以顯示出來。
2、真正的該程式要求的資料空間,是真正在執行中要使用的。
top 執行中可以通過 top 的內部命令對程序的顯示方式進行控制。內部命令如下:
s – 改變畫面更新頻率
l – 關閉或開啟第一部分第一行 top 資訊的表示
t – 關閉或開啟第一部分第二行 tasks 和第三行 cpus 資訊的表示
m – 關閉或開啟第一部分第四行 mem 和 第五行 swap 資訊的表示
n – 以 pid 的大小的順序排列表示程序列表
p – 以 cpu 佔用率大小的順序排列程序列表
m – 以記憶體佔用率大小的順序排列程序列表
h – 顯示幫助
n – 設定在程序列表所顯示程序的數量
q – 退出 top
s – 改變畫面更新週期
序號 列名 含義
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使用方法:
使用格式:
top [-] [d] [p] [q] [c] [c] [s] [s] [n]
引數說明:
d:指定每兩次螢幕資訊重新整理之間的時間間隔。當然使用者可以使用s互動命令來改變之。
p:通過指定監控程序id來僅僅監控某個程序的狀態。
q:該選項將使top沒有任何延遲的進行重新整理。如果呼叫程式有超級使用者許可權,那麼top將以盡可能高的優先順序執行。
s:指定累計模式。
s:使top命令在安全模式中執行。這將去除互動命令所帶來的潛在危險。
i:使top不顯示任何閒置或者僵死程序。
c:顯示整個命令列而不只是顯示命令名。
常用命令說明:
ctrl+l:擦除並且重寫螢幕
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使用百分比大小進行排序。
w:將當前設定寫入~/.toprc檔案中。
檢視多核cpu命令
mpstat -p all 和 sar -p all
說明:sar -p all > aaa.txt 重定向輸出內容到檔案 aaa.txt
top命令經常用來監控linux的系統狀況,比如cpu、記憶體的使用,程式設計師基本都知道這個命令,但比較奇怪的是能用好它的人卻很少,例如top監控檢視中記憶體數值的含義就有不少的曲解。
本文通過乙個執行中的web伺服器的top監控截圖,講述top檢視中的各種資料的含義,還包括檢視中各程序(任務)的字段的排序。
Linux top命令詳解
top統計cpu總體使用情況,使用了八個指標。這八個指標分別是 使用者空間程序 us 核心空間程序 sy 高nice值的使用者空間程序 ni 空閒 id 空閒等待io wa 中斷上半部 hi 中斷下半部 si 以及steal時間 st 理論上來講這八個指標之和應該是100 這八個指標當中,id和wa...
linux top 命令詳解
linux top 命令詳解 功能說明 顯示,管理執行中的程式。語 法 top bciqss d 間隔秒數 n 執行次數 補充說明 執行top指令可顯示目前正在系統中執行的程式,並通過它所提供的互動式介面,用熱鍵加以管理。參 數 b 使用批處理模式。c 列出程式時,顯示每個程式的完整指令,包括指令名...
Linux top命令詳解
統計資訊區 第一行 隊伍佇列資訊,同uptime命令的執行結果 23 32 15 表示系統時間 up 42 min 系統已經執行了42分鐘了 1 user 當前有乙個使用者登入系統 load erage 0.01,0.00,0.00 分別表示1min 5min 15min系統負載情況,這些資料是每隔...