linux top命令VIRT,RES,SHR,DA他的含義

thamsyangsw發表於2015-01-15

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 即可顯示或隱藏對應的列,最後按Enter鍵確定。
按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。最後按Enter鍵確定。
按大寫的 F 或 O 鍵,然後按 a-z 可以將程式按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26613085/viewspace-1402519/,如需轉載,請註明出處,否則將追究法律責任。

相關文章