cat
開啟檔案,會讀到 page cache)。mmap()
是一個系統呼叫,允許程式將檔案或設備對映進記憶體位址空間。/dev/hugepages/
或 mmap()
指定 MAP_HUGETLB
。mmap
)、實現 memory overcommit。cat
開啟檔案,會讀到 page cache)。是什麼?
Linux 核心用來管理實體頁框的記憶體分配方式,按 2 的次方大小分配。
為什麼要?
減少內部碎片、方便合併與釋放大區塊記憶體(如多頁分配)。
搭配?
與分頁(paging)搭配使用,當需要實體頁時從 buddy 系統分配。
ZONE_DMA
: 特定裝置只能對這區記憶體進行 DMA(Direct Memory Access)操作。ZONE_NORMAL
: 一般用於 kernel 頁面分配。ZONE_HIGHMEM
: 在 32-bit 系統中,無法直接被 kernel 映射的高位址記憶體。mmap()
是一個系統呼叫,允許程式將檔案或設備對映進記憶體位址空間。read()
/write()
呼叫,提升效能。what: memcg 是 cgroups 的一部分,專門負責記憶體資源的控制與監控。
why:
Linux 核心設計: 記憶體管理
![[Other Memory Sources.png]]
主題分享: Introduction to NUMA and Hugepage
numactl -H
/dev/hugepages/
或 mmap()
指定 MAP_HUGETLB
。