大頁記憶體與透明大頁詳解

2021-10-12 11:49:13 字數 917 閱讀 1574

大頁記憶體(hugepages),有時也叫「大記憶體頁」、「記憶體大頁」、「標準大頁」。作業系統以記憶體頁為單位管理記憶體,記憶體頁的大小對系統效能有影響。記憶體頁設得太小,記憶體頁會很多,管理記憶體頁的陣列會比較大,耗記憶體,同時tlb(translation lookaside buffer,頁表寄存緩衝器,可理解為頁表緩衝)大小是固定的,導致tlb miss增加。在不同的應用場合,記憶體頁的大小的最優值是不同的。所以一般的系統都支援多種記憶體頁的取值。

「大記憶體頁」有助於 linux 系統進行虛擬記憶體管理。顧名思義,除了標準的4kb大小的頁面外,它還能幫助管理記憶體中的巨大的頁面(通常是2mb)。使用「大記憶體頁」,你最大可以定義 1gb 的頁面大小。對於那些記憶體操作非常頻繁的業務來說,可以有效的提高效能。簡而言之,通過啟用大頁記憶體,系統只需要處理較少的頁面對映表,從而減少訪問/維護它們的開銷!

大頁記憶體類似專用記憶體,會從系統中摳出一塊大記憶體,而想要使用這塊記憶體,應用程式必須修改程式。 其次,如果程式記憶體使用較少,卻申請了大頁,就造成了記憶體浪費,這個時候就要用到透明大頁(transparent huge pages,thp)了。這兩者的區別在於大頁的分配機制:標準大頁管理是預分配的方式,而透明大頁管理則是動態分配的方式,且不需要修改程式原始碼。

thp 是乙個提取層,可用於自動建立、管理和使用超大頁面的大多數方面。thp可以改進系統的效能,可以減少使用超大頁面的複雜行,目前thp已在各種系統、配置、程式和負載中測試優化,可以改進大多數系統配置的效能。

grep huge /proc/meminfo

#檢視大頁記憶體使用情況

cat /sys/devices/system/node/node*/meminfo | fgrep huge

#檢視各個numa節點的大頁記憶體情況

cat /proc/mounts

#檢視大頁記憶體掛載情況

透明大頁相關核心引數 Linux核心分析(二)

1.linux核心模組簡介 2.簡單核心模組實現 llinux核心模組簡介 1.何為核心模組 最笨的方法是對核心進行重新配置,然後在重新編譯。這樣的話豈不是說我加乙個元件就得重新編譯核心,這顯然不是很科學的方法,其實我們的linux核心提供在執行時可進行擴充套件的特性,這意味著當系統啟動並執行時,我...

linux 大頁記憶體

1 什麼是大頁記憶體 大記憶體頁 有助於 linux 系統進行虛擬記憶體管理。顧名思義,除了標準的 4kb 大小的頁面外,它們還能幫助管理記憶體中的巨大的頁面。使用 大記憶體頁 你最大可以定義 1gb 的頁面大小。2 為什麼使用大頁記憶體 如果在系統中使用了huge page,則記憶體頁的數量會減少...

DPDK 大頁記憶體配置

對於2 mb的頁面,可以選擇在系統啟動後分配大頁面。通過在 sys devices 目錄中的nr hugepages檔案中回顯所需的大頁面數來完成此操作。對於單節點系統,使用的命令如下 假設需要1024頁 echo 1024 sys kernel mm hugepages hugepages 204...