[20220913]hugepage相關引數含義.txt

lfree發表於2022-10-10

[20220913]hugepage相關引數含義.txt

--//有人問使用hugepages後,grep -i pages /proc/meminfo看到HugePages_*相關引數的含義,做一個簡短的說明:

--//看我的測試環境:
$ grep "^vm.nr" /etc/sysctl.conf
vm.nr_hugepages = 104
vm.nr_overcommit_hugepages = 1000

--//啟動資料庫後:

SYS@book> show parameter use_large
NAME            TYPE   VALUE
--------------- ------ -----
use_large_pages string ONLY

$ grep -i pages /proc/meminfo
AnonPages:        236260 kB
AnonHugePages:         0 kB
HugePages_Total:     309
HugePages_Free:       68
HugePages_Rsvd:       68
HugePages_Surp:      205
Hugepagesize:       2048 kB

--//我的理解如下:
--//HugePages_Total表示HugePages總量.
--//HugePages_Free表示當前還沒有使用的HugePages數量.
--//HugePages_Rsvd表示reserved,保留未用HugePages的數量
--//HugePages_Surp表示surplus剩餘; 盈餘; 結餘的HugePages數量.

--//HugePages_Total-HugePages_Free+HugePages_Rsvd = 309-68+68 = 309 ,就是當前全部例項使用hugepages的數量.
--//注:實際上資料庫啟動並不是馬上使用全部的SGA記憶體,而是逐步增加,實際上現在使用HugePages的數量是
--//HugePages_Total-HugePages_Free =  309-68 = 241.

--//HugePages_Surp表示surplus剩餘; 盈餘; 結餘的數量.實際上設定vm.nr_overcommit_hugepages引數就可以看到.
--//並且vm.nr_hugepages不足的情況下就可以看到.注意測試這樣的情況必須設定use_large_pages=only.

--//HugePages_Surp = HugePages_Total - vm.nr_hugepages = 309 -104 = 205.

--//我設定vm.nr_hugepages = 104,而實際需求總量是309.這樣需要從vm.nr_overcommit_hugepages借用
--//HugePages_Total-vm.nr_hugepages = 309-104 = 205.HugePages_Surp表示就是這個含義.

--//補充說明:實際上如果設定oracle引數pre_page_sga=true,上面的資料庫重啟後如下:
$ grep -i pages /proc/meminfo
...
HugePages_Total:     309
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:      205
Hugepagesize:       2048 kB

--//可以檢視我以前的帖子:[20170209]理解pre_page_sga引數.txt

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2917488/,如需轉載,請註明出處,否則將追究法律責任。

相關文章