Rate this page del.icio.us  Digg slashdot StumbleUpon

How do I set up hugepages in Red Hat Enterprise Linux 4?

by

Contributed by Michael Kearey

Release Found: Red Hat Enterprise Linux 4

Resolution:

Hugepages can be allocated using the /proc/sys/vm/nr_hugepages entry, or by using the sysctl command.

To view the current setting using the /proc entry:

# cat /proc/sys/vm/nr_hugepages
0

To view the current setting using the sysctl command:

# sysctl vm.nr_hugepages
vm.nr_hugepages = 0

To set the number of huge pages using /proc entry:

# echo 5 > /proc/sys/vm/nr_hugepages

To set the number of hugepages using sysctl :

# sysctl -w vm.nr_hugepages=5
vm.nr_hugepages = 5

It may be necessary to reboot to be able to allocate all the hugepages that is needed. This is because hugepages requires large areas of contiguous physical memory. Over time, physical memory may be mapped and allocated to pages, thus the physical memory can become fragmented. If the hugepages are allocated early in the boot process, fragmentation is unlikely to have occurred.

It is recommended that the /etc/sysctl.conf file should be used to allocate hugepages at boot time. For example, to allocate 5 hugepages at boot time add the line below to the sysctl.conf file :

vm.nr_hugepages = 5

Red Hat’s customer service and support teams receive technical support questions from users all over the world. Red Hat technicians add the questions and answers to Red Hat Knowledgebase on a daily basis. Access to Red Hat Knowledgebase is free. Every month, Red Hat Magazine offers a preview into the Red Hat Knowledgebase by highlighting some of the most recent entries. The information provided in this article is for your information only. The origin of this information may be internal or external to Red Hat. While Red Hat attempts to verify the validity of this information before it is posted, Red Hat makes no express or implied claims to its validity.

2 responses to “How do I set up hugepages in Red Hat Enterprise Linux 4?”

  1. George says:

    One small addition:

    if it doesn’t have enough space to accomodate X number of hugepages; it will allocate the available space.

    At least this is what I understood from this test:

    [root@centos4 ~]# echo 50 > /proc/sys/vm/nr_hugepages
    [root@centos4 ~]# cat /proc/sys/vm/nr_hugepages
    46

  2. Kamal Kishore says:

    Before configuring Huge Pages, ensure to have read Sizing Big Pages and Huge Pages
    Sizing Big Pages and Huge Pages

    With the Big Pages and Huge Pages feature you specify how many physically contiguous large memory pages should be allocated and pinned in RAM for shared memory like Oracle SGA. For example, if you have three Oracle instances running on a single system with 2 GB SGA each, then at least 6 GB of large pages should be allocated. This will ensure that all three SGAs use large pages and remain in main physical memory. Furthermore, if you use ASM on the same system, then I recommend to add an additional 200MB. I’ve seen ASM instances creating between 70 MB and 150 MB shared memory segments. And there might be other non-Oracle processes that allocate shared memory segments as well.

    It is, however, not recommended to allocate too many Big or Huge Pages. These preallocated pages can only be used for shared memory. This means that unused Big or Huge Pages won’t be available for other use than for shared memory allocations even if the system runs out of memory and starts swapping. Also take note that Huge Pages are not used for the ramfs shared memory filesystem,