Linux系統的記憶體管理
阿新 • • 發佈:2021-12-01
drop_caches 的值可以是 0-3 之間的數字,代表不同的含義:
0:不釋放(系統預設值)
1:釋放頁快取
2:釋放dentries和inode
3:釋放所有快取
修改:# echo 1 > /proc/sys/vm/drop_caches 代表釋放頁快取
free命令相對於top,提供了更簡潔的檢視系統記憶體使用情況:
# free -m
mem:表示實體記憶體統計
buff/cache:表示實體記憶體的快取統計
swap:表示硬碟上交換分割槽的使用情況
系統當前真正可用的記憶體並不是第一行 free 標記的,他僅代表未被分配的記憶體
當Linux的實體記憶體快要被耗盡時,系統會把一些程序佔用的記憶體轉移到 swap 區,當實體記憶體被釋放一部分時,swap 區的一些記憶體佔用又慢慢回到 mem 區,但是 mem 區卻不再是之前的滿負荷狀態,而是有一部分 free 的記憶體!
【總結】
1)當實體記憶體快被耗盡時,系統並沒有崩潰,而是拿 swap 做臨時記憶體,當兩者都耗盡,系統 OutofMemory
2)實體記憶體達到峰值,系統中一些不常用的程序記憶體佔用被提到 swap 區
3)當 Men 區的資源進行釋放時,被挪到 swap 的記憶體並不會全部回來,隨著系統或者程式的喚醒才會慢慢回到 men 區
4)swap 是記憶體不夠時,磁碟虛擬出來的記憶體,磁碟主要是 I/O 級別的操作,並不是系統核心級別的操作,處理速度跟 mem 區不是一個等級