Section: Administration (8)
Updated: 1.0.0


numad - A user-level daemon that provides placement advice and processmanagement for efficient use of CPUs and memory on systems with NUMA topology. 


numad [-dFhvV]

numad [-D non-standard-cgroup-mount-point]

numad [-i [min_interval:]max_interval]

numad [-K 0|1]

numad [-l log_level]

numad [-p PID]

numad [-r PID]

numad [-S 0|1]

numad [-u target_utilization]

numad [-w NCPUS[:MB]]

numad [-x PID]



Numad is a system daemon that monitors NUMA topology and resource usage. Itwill attempt to locate processes for efficient NUMA locality and affinity,dynamically adjusting to changing system conditions. Numad also providesguidance to assist management applications with initial manual binding of CPUand memory resources for their processes. Note that numad is primarilyintended for server consolidation environments, where there might be multipleapplications or multiple virtual guests running on the same server system.Numad is most likely to have a positive effect when processes can be localizedin a subset of the system's NUMA nodes. If the entire system is dedicated to alarge in-memory database application, for example -- especially if memoryaccesses will likely remain unpredictable -- numad will probably not improveperformance. 


Debug output in log, sets the log level to LOG_DEBUG. Same effect as -l 7.
-D <non-standard-cgroup-mount-point>
This option can be used to communicate a non-standard cgroup mount point tonumad. This is not normally necessary.
Run in foreground mode, do not daemonize.
Display usage help information and then exit.
-i <[min_interval:]max_interval>
Sets the time interval that numad waits between system scans, in seconds to<max_interval>. Default <max_interval> is 15 seconds, default<min_interval> is 5 seconds. Setting a <max_interval> of zero willcause the daemon to exit. (This is the normal mechanism to terminate thedaemon.) A bigger <max_interval> will decrease numad overhead but alsodecrease responsiveness to changing loads.
-K <0|1>
This option controls whether numad keeps interleaved memory spread across NUMAnodes, or attempts to merge interleaved memory to local NUMA nodes. Thedefault is to merge interleaved memory. This is the appropriate setting tolocalize processes in a subset of the system's NUMA nodes. If you are runninga large, single-instance application that allocates interleaved memory becausethe workload will have continuous unpredictable memory access patterns (e.g. alarge in-memory database), you might get better results by specifying -K1 to instruct numad to keep interleaved memory distributed.
-l <log_level>
Sets the log level to <log_level>. Reasonable choices are 5, 6, or 7.The default value is 5.
-p <PID>
Add PID to explicit inclusion list of processes to consider for managing, ifthe process also uses significant resources. Multiple -p PID optionscan be specified at daemon start, but after daemon start, only one PID can beadded to the inclusion list per subsequent numad invocation. Use with -S toprecisely control the scope of processes numad can manage. Note that thespecified process will not necessarily be actively managed unless it also meetsnumad's significance threshold -- which is currently 300MB and half of a CPU.
-r <PID>
Remove PID from both the explicit inclusion and the exclusion lists ofprocesses. After daemon start, only one PID can be removed from the explicitprocess lists per subsequent numad invocation. Use with -S and -p and -x toprecisely control the scope of processes numad can manage.
-S <0|1>
This option controls whether numad scans all system processes or only theprocesses on the explicit inclusion PID list. The default is to scan allprocesses. Use -S 0 to scan only the explicit inclusion PID list. Use-S 1 to again scan all system processes (excepting those on the explicitexclusion list). Starting numad as
numad -S 0 -p <PID-1> -p <PID-2> -p <PID-3>
will limit scanning, and thus also automatic NUMA management, to only thosethree explicitly specified processes.
-u <target_utilization>
Set the desired maximum consumption percentage of a node. Default is 85%.Decrease the target value to maintain more available resource margin on eachnode. Increase the target value to more exhaustively consume node resources.
Verbose output in log, sets the log level to LOG_INFO. Same effect as -l 6.
Display version information and exit.
-w <NCPUS[:MB]>
Queries numad for the best NUMA nodes to bind an entity that needs<NCPUS>. The amount of memory (in MBs) is optional, but should normallybe specified as well <:MB> so numad can recommend NUMA nodes withavailable CPU capacity and adequate free memory. This query option can be usedregardless of whether numad is running as a daemon. (An invocation using thisoption when numad is not running as a daemon, will not cause the daemon tostart.) Output of this option is a string that contains a NUMA node list. Forexample: 2-3,6. The recommended node list could be saved in a shell variable(e.g., NODES) and then used as the node list parameter in a
numactl -m $NODES -N $NODES ...
command. See numactl(8).
-x <PID>
Add PID to explicit exclusion list of processes to blacklist from managing.Multiple -x PID options can be specified at daemon start, but afterdaemon start, only one PID can be added to the exclusion list per subsequentnumad invocation. Use with -S to precisely control the scope of processesnumad can manage.






Numad is normally run as a system daemon and should be managed by the standard init mechanisms of the host.

If interactive (manual) control is desired, you can start the daemon manually by typing:


Subsequent numad invocations while the daemon is running can be used to dynamically change run-time options. 


Bill Gray <> 






This document was created byman2html,using the manual pages.