After my recent blog entry entitled Configuring Linux Hugepages for Oracle Is Just Too Difficult! Isnt It? Part I, I engaged in a couple of email threads and a thread on oracle-l about when to employ hugepages. In those exchanges I was amazed to find that it is still a borderline issue for folks. I feel it is very cut and dried and thus I prepared the following guidelines that more or less spell it out.
- Reasons for Using Hugepages
- Use hugepages if OLTP or ERP. Full stop.
- Use hugepages if DW/BI with large numbers of dedicated connections or a large SGA. Full stop.
- Use hugepages if you don’t like the amount of memory page tables are costing you (/proc/meminfo). Full stop.
- SGA Memory Management Models
- AMM does not support hugepages. Full stop.
- ASMM supports hugepages.
- Instance Type
- ASM uses AMM by default. ASM instances do not need hugepages. Full stop.
- All non-ASM instances should be considered candidate for hugepages. See 1.1->1.3 above.
- Configuration
- Limits (multiple layers)
- /etc/security/limits.conf establishes limits for hugepages for processes. Note, setting these values does not pre-allocate any resources.
- Ulimit also establishes hugepages limits for processes.
- Allocation
- /etc/sysctl.conf vm.nr_hugepages allocates memory to the hugepages pool.
- Sizing
- Read MOS 401749.1 for information on tools available to aid in the configuration of vm/nr_hugepages
To make the point of how urgently Oracle DBAs need to qualify their situation against list items 1.1 through 1.3 above, please consider the following quote from an internal email I received. The email is real and the screen output came from a real customer system. Yes, 120+ gigabytes of memory wasted in page tables. Fact is often stranger than fiction!
And here is an example of kernel pagetables usage, with a 24GB SGA, and 6000+ connections .. with no hugepages in use ..
# grep PageT /proc/meminfo
PageTables: 123731372 kB
Filed under: oracle

Recent comments
17 weeks 2 days ago
27 weeks 22 hours ago
28 weeks 5 days ago
32 weeks 7 hours ago
34 weeks 2 days ago
43 weeks 5 days ago
45 weeks 2 days ago
46 weeks 2 days ago
46 weeks 3 days ago
49 weeks 1 day ago