Linux系統的記憶體管理

2022-09-06 18:51:07 字數 748 閱讀 9122

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

Linux系統的記憶體管理

dos時代 同一時間只能有乙個程序在執行 也有一些特殊演算法可以支援多程序 windows9x 多個程序裝入記憶體存在問題 1 記憶體不夠用 2 互相打擾 1.解決記憶體撐爆問題 lru演算法 leetcode 146題 分頁 記憶體不夠用 記憶體中分成固定大小的頁框 4k 把程式 硬碟上 分成4k...

Linux系統記憶體管理簡介

linux記憶體管理之物理空間 linux核心中有個全域性變數mem map,指向乙個page資料結構的陣列,每個page資料結構代表著乙個物理頁面,整個資料就代表著系統中的全部物理頁面。頁表項的高20位對於軟體和mmu硬體有著不同的意義。對於軟體,這是乙個物理頁面的序號,將這個序號用作下標就可以從...

linux記憶體管理 夥伴系統演算法

分配記憶體 釋放記憶體 兩個塊的大小相同 兩個塊的位址連續 兩個塊必須是從同乙個大塊分離出來的 linux把每個zone分成max order個free area,每個free are的大小是2的冪次方。max order的值為11,第0組大小為2 0個頁,第1組大小為2 1個頁,依次類推,最大的是...