A.13. numad
A.13. numad numad is an automatic NUMA affinity management daemon. It monitors NUMA topology and resource usage within a system in order to dynamically improve NUMA resource allocation and management. Note that when numad is enabled, its behavior overrides the default behavior of automatic NUMA balancing. A.13.1. Using numad from the Command Line To use numad as an executable, just run: While numad runs, its activities are logged in /var/log/numad.log . It will run until stopped with the following command: Stopping numad does not remove the changes it has made to improve NUMA affinity. If system use changes significantly, running numad again will adjust affinity to improve performance under the new conditions. To restrict numad management to a specific process, start it with the following options. -p pid This option adds the specified pid to an explicit inclusion list. The process specified will not be managed until it meets the numad process significance threshold. -S 0 This sets the type of process scanning to 0 , which limits numad management to explicitly included processes. For further information about available numad options, refer to the numad man page: A.13.2. Using numad as a Service While numad runs as a service, it attempts to tune the system dynamically based on the current system workload. Its activities are logged in /var/log/numad.log . To start the service, run: To make the service persist across reboots, run: For further information about available numad options, refer to the numad man page: A.13.3. Pre-Placement Advice numad provides a pre-placement advice service that can be queried by various job management systems to provide assistance with the initial binding of CPU and memory resources for their processes. This pre-placement advice is available regardless of whether numad is running as an executable or a service. A.13.4. Using numad with KSM If KSM is in use on a NUMA system, change the value of the /sys/kernel/mm/ksm/merge_nodes parameter to 0 to avoid merging pages across NUMA nodes. Otherwise, KSM increases remote memory accesses as it merges pages across nodes. Furthermore, kernel memory accounting statistics can eventually contradict each other after large amounts of cross-node merging. As such, numad can become confused about the correct amounts and locations of available memory, after the KSM daemon merges many memory pages. KSM is beneficial only if you are overcommitting the memory on your system. If your system has sufficient free memory, you may achieve higher performance by turning off and disabling the KSM daemon.
numad numad -i 0 numad -S 0 -p pid man numad systemctl start numad.service chkconfig numad on man numad