[20220913]hugepage相关参数含义.txt

来源:这里教程网 时间:2026-03-03 17:57:37 作者:

[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

相关推荐