1. 程式人生 > 其它 >Linux系統的記憶體管理

Linux系統的記憶體管理

  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 區不是一個等級