I utilize docker-oracle12c to run Oracle
in docker, and bind specified CPU
and memory:
docker run -d -it --cpuset-cpus=xx-xx,xx-xxx --cpuset-mems=x,x ...
All containers run OK but one Oracle
database is always created failed, and the error log is:
ORA-03114: not connected to ORACLE
After tough debugging, the reason is the memory on specified NUMA
node is not enough:
# numactl -H
......
node 2 size: 786432 MB
node 2 free: xxxxx MB
node 3 size: 786432 MB
node 3 free: xxxxx MB
The solution is disable HugePages
temporarily:
# cat /etc/sysctl.conf
......
vm.nr_hugepages=0
......
# sysctl -p
After creating database, enable HugePages
again:
# cat /etc/sysctl.conf
......
vm.nr_hugepages=xxxxxx
......
# sysctl -p