How to confirm NUMA?
java, linux, numa
Solution
The presence of those /proc files indicates that your linux kernel is numa-aware. Don't concern yourself too much comparing version numbers, as, particularly with Oracle / RHEL kernels, the vendors port/backport many features without keeping the version string "up to date".
Other ways of testing the same thing:
$ grep NUMA=y /boot/config-`uname -r`
CONFIG_NUMA=y
CONFIG_K8_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_ACPI_NUMA=y
$ numactl --hardware
available: 2 nodes (0-1)
node 0 size: 18156 MB
node 0 free: 9053 MB
node 1 size: 18180 MB
node 1 free: 6853 MB
node distances:
node 0 1
0: 10 20
1: 20 10
Problem
How can I confirm that a host is NUMA-aware? The Oracle doc says that NUMA-awareness starts at kernel 2.6.19, but the NUMA man page says that it was introduced with 2.6.14. I'd like to be sure that a Java process started with `-XX:+UseNUMA` is actually taking advantage of something. Checking for the numa_maps, I see that I have them: ``` # find /proc -name numa_maps /proc/1/task/1/numa_maps /proc/1/numa_maps /proc/2/task/2/numa_maps /proc/2/numa_maps /proc/3/task/3/numa_maps ``` Though my kernel is behind what Oracle states: ``` # uname -sr Linux 2.6.18-92.el5 ``` I'm currently using 64-bit jdk1.6.0_29 on RHEL5.1.