Database Reference
In-Depth Information
node 0 size: 8190 MB
node 0 free: 1622 MB
node 1 cpus: 6 7 8 9 10 11
node 1 size: 8192 MB
node 1 free: 41 MB
node 2 cpus: 12 13 14 15 16 17
node 2 size: 8192 MB
node 2 free: 1534 MB
node 3 cpus: 18 19 20 21 22 23
node 3 size: 8176 MB
node 3 free: 1652 MB
node distances:
node 0 1 2 3
0: 10 16 16 16
1: 16 10 16 16
2: 16 16 10 16
3: 16 16 16 10
[oracle@server1 ~]$
In this example, you see a small system with four memory sockets. For each NUMA node, the number of its CPUs
is reported, which are in fact cores. In addition to the cores per NUMA node, you get the size and utilization of the
node's memory. The previously shown server has 32GB available in total, with about 8 GB available per NUMA node.
The node distance map is based on the ACPI SLIT—the Advanced Configuration and Power Interface's System Locality
Information Table. Don't worry about the names and technology. What matters is that the numbers in the table show
the relative latency to access memory from a particular node, normalized to a base value of 10. Additional information,
similar to the /proc/meminfo output per NUMA node, can be found in /sys/devices/system/node/*/meminfo and
related files in the same directory. If you have allocated large pages, then you will find more information about these in
/sys/devices/system/node/*/hugepages/ .
The numactl utility is not only used to expose the hardware configuration, but it can also actively influence how
processes and their memory access are handled by applying what is called the NUMA policy. By default, the NUMA
policy matches the one shown here:
[oracle@server1 ~]$ numactl --show
policy: default
preferred node: current
physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
cpubind: 0 1 2 3
nodebind: 0 1 2 3
membind: 0 1 2 3
The default NUMA policy sets the current node as the preferred one and does not enforce binding processes to
memory nodes or CPUs. If, for example, you want to override the default policy, you have plenty of options:
[root@server1 ~]# numactl
usage: numactl [--interleave=nodes] [--preferred=node]
[--physcpubind=cpus] [--cpunodebind=nodes]
[--membind=nodes] [--localalloc] command args ...
numactl [--show]
numactl [--hardware]
numactl [--length length] [--offset offset] [--shmmode shmmode]
[--strict]
Search WWH ::




Custom Search