linux 虛擬記憶體 vmstat

2021-06-20 06:23:38 字數 1222 閱讀 9336

物理記憶體(ram)是系統的乙個有限資源,linux記憶體管理通過釋放掉一些物理記憶體,以最大化使用效果。

kernel通常是使用page-in和page-out來達到這個效果的

page-in 從disk中讀取檔案到記憶體中,這個操作基本不會出現什麼問題

page-out 將記憶體中的檔案寫到disk中,但是如果page-out頻繁不斷的發生,直到當核心管理分頁的時間超過執行程式的時間時,系統效能會急劇下降

這種狀態叫做thrashing(顛簸)

這時候,就需要我們使用命令去監控

vmstat interval count

vmstat 1 10 表示間隔一秒重新整理 一次, 顯示10次

引數-a:顯示活躍和非活躍記憶體

-f:顯示從系統啟動至今的fork數量 。引申閱讀:

-m:顯示slabinfo

-n:只在開始時顯示一次各欄位名稱。

-s:顯示記憶體相關統計資訊及多種系統活動數量。

delay:重新整理時間間隔。如果不指定,只顯示一條結果。

count:重新整理次數。如果不指定重新整理次數,但指定了重新整理時間間隔,這時重新整理次數為無窮。

-d:顯示磁碟相關統計資訊。

-p:顯示指定磁碟分割槽統計資訊

-s:使用指定單位顯示。引數有 k 、k 、m 、m ,分別代表1000、1024、1000000、1048576位元組(byte)。預設單位為k(1024 bytes)

-v:顯示vmstat版本資訊。

字段說明:

procs(程序):

r: 執行佇列中程序數量

b: 等待io的程序數量

memory(記憶體):

swpd: 使用虛擬記憶體大小

free: 可用記憶體大小

buff: 用作緩衝的記憶體大小

cache: 用作快取的記憶體大小

swap:

si: 每秒從交換區寫到記憶體的大小

so: 每秒寫入交換區的記憶體大小

io:(現在的linux版本塊的大小為1024bytes)

bi: 每秒讀取的塊數

bo: 每秒寫入的塊數

系統:in: 每秒中斷數,包括時鐘中斷。

cs: 每秒上下文切換數。

cpu(以百分比表示):

us: 使用者程序執行時間(user time)

sy: 系統程序執行時間(system time)

id: 空閒時間(包括io等待時間)

wa: 等待io時間

虛擬記憶體的實時監控工具 vmstat

vmstat命令用來獲得unix系統有關程序 虛存 頁面交換空間及cpu活動的資訊。這些資訊反映了系統的負載情況。vmstat首次執行時顯示自系統啟動開始的各項統計資訊,之後執行vmstat將顯示自上次執行該命令以後的統計資訊。使用者可以通過指定統計的次數和時間來獲得所需的統計資訊。root xie...

Linux虛擬記憶體

linux採用虛擬段頁式儲存方式來管理記憶體,程式的基本邏輯儲存單元,也可以說是程式段。linux中有四個段,段,資料段,bss段,堆疊段。虛擬位址從低到高依次是 段,資料段,bss段,堆疊段。其中 段為程式本身 二進位制指令 資料段為 中初始化了的全域性變數和靜態變數,bss段為為初始化的全域性變...

Linux虛擬記憶體

一 虛擬記憶體 1 系統會為每個程序分4g的虛擬記憶體空間。32個0 32個1 位址範圍。2 使用者只能使用虛擬位址,無法直接使用物理記憶體。3 虛擬位址與物理記憶體進行對映才能使用,否則就會產生段錯誤。4 虛擬位址與物理記憶體的對映由作業系統動態維護。5 讓使用者使用虛擬位址一方面為了安全,另一方...