1. 基本概念
Virtual Memory:虛擬內存就是採用硬盤對物理內存進行擴展
kswapd:kswapd進程負責確保內存空間總是在被釋放中.
pdflush:負責將內存中的內容和文件系統進行同步操作.即寫操作返回的時候數據並沒有真正寫到磁盤上,而是先寫到了系統cache裏,隨後由pdflush內核線程將系統中的髒頁寫到磁盤上
2. MEM監測
•查看內存信息:cat /proc/meminfo
• 顯示當前的內存使用情況:free
第一行 Men:
total:表示物理內存總量,total = used + free
used:表示總計分配給緩存(包含buffers 與cache )使用的數量,但其中可能部分緩存並未實際使用
free:未被分配的內存
shared:共享內存,一般系統不會用到
buffers:系統分配但未被使用的buffers數量
cached:系統分配但未被使用的cache數量
第二行 -/+ buffers/cache :
used:也就是第一行中的used - buffers - cached ,也是實際使用的內存總量
free:也就是第一行中的free + buffers + cached,這就是系統當前實際可用內存
第三行 Swap:指交換分區
• ps命令
進程查看命令.使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等等.總之大部分信息都是可以通過執行該命令得到的.
ps aux
顯示其他用戶啓動的進程(a)
查看系統中屬於自己的進程(x)
啓動這個進程的用戶和它啓動的時間(u)
USER: USER域指明瞭是哪個用戶啓動了這個命令;
CPU: 用戶可以查看某個進程佔用了多少CPU;
MEM: 內存使用及其VSZ(虛擬內存大小)和RSS(常駐集大小):
VSZ: 表示如果一個程序完全駐留在內存的話需要佔用多少內存空間;
RSS: 指明瞭當前實際佔用了多少內存;
STAT: 顯示了進程當前的狀態,參數意義如下:
D 不可中斷 Uninterruptible(usually IO)
R 正在運行,或在隊列中的進程
S 處於休眠狀態
T 停止或被追蹤
Z 殭屍進程
W 進入內存交換(從內核2.6開始無效)
X 死掉的進程
< 高優先級
n 低優先級
s 包含子進程
+ 位於後臺的進程組
• sar--r :內存和交換分區使用率
• vmstat
可以展現給定時間間隔的服務器的狀態值。 一般VMSTAT工具的使用是通過兩個數字參數來完成的,第一個參數是採樣的時間間隔數,單位是秒,第二個參數是採樣的次數
r:運行隊列