物理記憶體(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 讓使用者使用虛擬位址一方面為了安全,另一方...