1.vmstat
vmstat是乙個檢視虛擬記憶體(virtual memory)使用狀況的工具。
2.使用格式
vmstat -option interval count
3.vmstat常用的選項
-a:顯示活躍和非活躍記憶體
-f:顯示從系統啟動至今的fork數量 。
4.vmstat常用操作舉例
(1)每三秒輸出一次統計資訊
字段說明:
procs(程序):
r: 執行佇列中程序數量,這個值也可以判斷是否需要增加cpu。(長期大於1)
b: 等待io的程序數量
memory(記憶體):
swpd: 使用虛擬記憶體大小
注意:如果swpd的值不為0,但是si,so的值長期為0,這種情況不會影響系統效能。
free: 空閒物理記憶體大小
buff: 用作緩衝的記憶體大小
cache: 用作快取的記憶體大小
注意:如果cache的值大的時候,說明cache處的檔案數多,如果頻繁訪問到的檔案都能被cache處,那麼磁碟的讀io bi會非常小。
swap:
si: 每秒從交換區寫到記憶體的大小,由磁碟調入記憶體
so: 每秒寫入交換區的記憶體大小,由記憶體調入磁碟
注意:記憶體夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統效能會受到影響,磁碟io和cpu資源都會被消耗。有些朋友看到空閒記憶體(free)很少的或接近於0時,就認為記憶體不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統效能這時不會受到影響的。
io:(現在的linux版本塊的大小為1kb)
bi: 每秒讀取的塊數
bo: 每秒寫入的塊數
注意:隨機磁碟讀寫的時候,這2個值越大(如超出1024k),能看到cpu在io等待的值也會越大。
系統:in: 每秒中斷數,包括時鐘中斷。
cs: 每秒上下文切換數。
注意:上面2個值越大,會看到由核心消耗的cpu時間會越大。
cpu(以百分比表示):
us: 使用者程序執行時間百分比(user time)
sy: 核心系統程序執行時間百分比(system time)
wa: io等待時間百分比
id: 空閒時間百分比
(2)顯示活躍和非活躍記憶體
使用-a選項顯示活躍和非活躍記憶體時,所顯示的內容除增加inact和active外,其他顯示內容與例子1相同。活躍記憶體與非活躍記憶體就是作業系統page-out需要參考到的資訊了。
作業系統是根據lru演算法(least recently used)來說,表示最近使用得最少的記憶體。作業系統維護兩個lru list,即active list和inactive list。剛剛訪問過的頁面放進active list,長時間未訪問過的頁面放進inactive list。
在使用vimstat -a顯示出來的active memery和inactive memory有下面兩個計算公式:
active memory = active_anon + active_file
inactive memory = inactive_anon + inactive_file
顯示虛擬記憶體統計資訊
可以使用 vmsta 命令報告虛擬記憶體統計資訊,以及有關系統事件 例如 cpu 負載 分頁 上下文切換數 裝置中斷和系統呼叫 的資訊。vmstat 命令還可以顯示有關交換 快取記憶體重新整理和中斷的統計資訊。下表介紹了 vmstat 命令輸出中的字段。表 13 1 vmstat 命令的輸出 類別欄...
linux之虛擬記憶體相關介紹
什麼是虛存?為什麼需要它?我們知道程式 和資料必須駐留在記憶體中才能得以執行,然而系統記憶體數量很有限,往往不能容納乙個完整程式的所有 和資料,更何況在多工系統中,可能需要同時開啟子處理程式,畫圖程式,瀏覽器等很多任務,想讓記憶體駐留所有這些程式顯然不太可能。因此首先能想到的就是將程式分割成小份,只...
Linux虛擬記憶體
linux採用虛擬段頁式儲存方式來管理記憶體,程式的基本邏輯儲存單元,也可以說是程式段。linux中有四個段,段,資料段,bss段,堆疊段。虛擬位址從低到高依次是 段,資料段,bss段,堆疊段。其中 段為程式本身 二進位制指令 資料段為 中初始化了的全域性變數和靜態變數,bss段為為初始化的全域性變...