Hugepages revisited
By Martin | November 30th, 2008 | Category: Linux, Oracle Database, Unix | 1 Comment »A while ago I wrote a post about a specific listener coredump issue which could be solved by 1) installing an oracle patch and 2) by implementing hugepages. I have also linked to an article from Pythian Group Oracle expert
Today, I want to document the steps necessary to implement hugepages after doing some research:
- Check your /etc/sysctl.conf shmall and shmmax values. I recommend that you set shmmax bigger or
- Check your current total shared memory segment size. Depending on your “bc -l” skills by summing all byte lines from ipcs -m or by executing a script from metalink Note 401749.1 (which does exactly that). Calculate how many hugepages you need by “cat /proc/meminfo” and dividing it by the pagesize of your platform. (Linux IA64 has 256MB pages for example) I recommend to add 1 extra page for safety.
- Say, you need 200 hugepages. Multiply it with the pagesize and enter this value in
/etc/security/limits.conf: (values in kb)
oracle soft memlock 2097152
oracle hard memlock 2097152
- Set the parameters in /etc/sysctl.conf:
vm.nr_hugepages=200
vm.hugetlb_shm_group=<group id of dba group from /etc/group>
e.g. vm.hugetlb_shm_group=201
I am going to implement hugepages on Linux Itanium for a Real Application Cluster system. I have read posts that there are different issues regarding startup with srvctl or sqlplus and startup by oracle or root. I will investigate and write more soon.
[…] It is well known that hugepages can reduce the overhead of managing memory pages of Oracle SGA by the operating system thus leading to lower system cpu utilization. I have written two blog entries regarding this topic already: Listener Coredumps on heavy load system and Hugepages revisited. […]