[20260421]测试21c下测试use_large_pages遇到的问题.txt
--//最近几天一直在测试21c下测试use_large_pages设置,在测试中遇到1个情况,做一个记录.
--//首先测试时遇到如果use_large_pages=only或者auto_only的情况下,vm.nr_overcommit_hugepages设置无效.
--//但是测试有时候会在tmux各个面板下切换,会出现混乱的情况,也就是在这样的情况下遇到的情况,做一个记录.
1.环境:
# grep ^vm /etc/sysctl.d/98-oracle.conf
vm.nr_hugepages = 530
vm.nr_overcommit_hugepages = 20
SYS@book> startup nomount
ORACLE instance started.
Total System Global Area 1107294056 bytes
Fixed Size 9684840 bytes
Variable Size 654311424 bytes
Database Buffers 436207616 bytes
Redo Buffers 7090176 bytes
--//已经启动实例.
SYS@book> show parameter use_large_pages
PARAMETER_NAME TYPE VALUE
--------------- ------- --------
use_large_pages string ONLY
# grep -i hugepage /proc/meminfo
AnonHugePages: 57344 kB
HugePages_Total: 530
HugePages_Free: 11
HugePages_Rsvd: 11
HugePages_Surp: 0
Hugepagesize: 2048 kB
2.修改内核参数:
# grep ^vm /etc/sysctl.d/98-oracle.conf
vm.nr_hugepages = 520
vm.nr_overcommit_hugepages = 20
# grep ^vm /etc/sysctl.d/98-oracle.conf
vm.nr_hugepages = 520
vm.nr_overcommit_hugepages = 20
# sysctl -p /etc/sysctl.d/98-oracle.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
vm.nr_hugepages = 520
vm.nr_overcommit_hugepages = 20
--//使参数生效。
# grep -i hugepage /proc/meminfo
AnonHugePages: 57344 kB
HugePages_Total: 530
HugePages_Free: 11
HugePages_Rsvd: 11
HugePages_Surp: 10
~~~~~~~~~~~~~~~~~~~~~~~~
Hugepagesize: 2048 kB
--//再次查看/proc/meminfo,可以发现HugePages_Surp:10。
# sysctl vm.nr_hugepages
vm.nr_hugepages = 520
--//相当于通过vm.nr_overcommit_hugepages参数,借用了10个hugepages。
--//这样520+10=530.
SYS@book> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
# grep -i hugepage /proc/meminfo
AnonHugePages: 14336 kB
HugePages_Total: 520
HugePages_Free: 520
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
--//再次重启实例:
SYS@book> startup nomount
ORA-27106: system pages not available to allocate memory
Additional information: 6311
Additional information: 1
--//可以发现无法启动实例。必须设置vm.nr_hugepages=530,才可以启动实例。
# sysctl -w vm.nr_hugepages=530
vm.nr_hugepages = 530
--//再次启动实例ok.
SYS@book> startup nomount
ORACLE instance started.
Total System Global Area 1107294056 bytes
Fixed Size 9684840 bytes
Variable Size 654311424 bytes
Database Buffers 436207616 bytes
Redo Buffers 7090176 bytes
--//也就是use_large_pages=only的情况下,必须设置vm.nr_hugepages大于需要hugepages的数量,才能启动oracle实例成功。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3116909/ ,如需转载,请注明出处,否则将追究法律责任。