1. 程式人生 > 其它 >linux 記憶體問題分析

linux 記憶體問題分析

DDR記憶體在linux中分為三類:分別是

  1. 保留記憶體: 所有出現在dts中的reserverd-memory屬性中的記憶體,linux不會管理該部分記憶體;如ion 記憶體,這塊記憶體會把ion driver所管理
  2. 靜態記憶體: 這部分包括核心的程式碼段,資料段,ramdisk, dtb, struct page等記憶體
  3. 動態記憶體:這部分就是cat /porc/meminfo 所看到的memtotal大小的記憶體(也是free -h看到的tota的大小),由核心管理

struct page的佔用: 每個4KB的頁都要有一個struct page與之對應,大小是64B,

因此除暫存器空間外的所有物理空間都需要對應struct page

這1GB的DDR的就要用去大約16MB的上struct page; 核心資料段,程式碼段的佔用大致如下:

kernel code 10MB
rw data 1.35MB
ro data 4.18MB
init 0.625MB
bss 8.83MB
cma 0MB
總計 24MB+

 

 

 

 

 

 

 

 

DTB大小:可以通過dbt檔案大小檢視

檔案系統的meta data佔用:【待補充】

各使用者serveice的記憶體佔用:可以用procrank 命令中打印出來的Pss來估計