Configuring HugeTLB Pages for a Specific NUMA Node at Runtime

In certain cases, you might need make a request for huge pages at runtime.

The following procedure shows how to request 20 HugeTLB pages of size 2048 kB for node2 at runtime.

Before starting, you must ensure you have the required administrative privileges required for all the steps.

  1. Run the numastat command to show memory statistics relating to the NUMA nodes:
    numastat -cm | egrep 'Node|Huge'| grep -v AnonHugePages
                     Node 0 Node 1 Node 2 Node 3  Total add
    HugePages_Total       0      0      0      0      0
    HugePages_Free        0      0      0      0      0
    HugePages_Surp        0      0      0      0      0
    
  2. Add the required number of huge pages of a specified size to the selected node, for example 20 pages of 2 MB size on node 2:
    echo 20 | sudo tee /sys/devices/system/node/node2/hugepages/hugepages-2048kB/nr_hugepages
  3. Run the numastat command again to ensure the request was successful and that the requested memory (in our example 20 x 2 MB pages = 40 MB) has been added HugePages_Total for node2:
    numastat -cm | egrep 'Node|Huge'| grep -v AnonHugePages
                     Node 0 Node 1 Node 2 Node 3  Total
    HugePages_Total       0      0     40      0     40
    HugePages_Free        0      0     40      0     40
    HugePages_Surp        0      0      0      0      0