[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博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2917488/ ,如需转载,请注明出处,否则将追究法律责任。