透明巨頁和巨頁的詳解

大頁內存

大頁內存(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
#查看大頁內存掛載情況
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章