numad(8)

nuamd

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

SYNTAX

numad [-dhvV]

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

numad [-i [min_interval:]max_interval]

numad [-l log_level]

numad [-p PID]

numad [-r PID]

numad [-S 0|1]

numad [-u target_utilization]

numad [-w NCPUS[:MB]]

DESCRIPTION

Numad is a system daemon that monitors NUMA topology and usage. It will attempt to locate processes for optimum NUMA locality and affinity, dynamically adjusting to changing system conditions. Numad also provides guidance to assist management applications with initial manual binding of CPU and memory resources for their processes.

OPTIONS

-d  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 to numad. This is not normally necessary.

-h  Display usage help information and 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 will cause the daemon to exit. (This is the normal mechanism to terminate the daemon.) A bigger <max_interval> will decrease numad overhead but also decrease responsiveness to changing loads.

-l <log_level>
    Sets the log level to <log_level>. Good choices are 5, 6, or 7. The default value is 5.

-p <PID>
    Add PID to explicit list of processes to consider for managing, if the process uses significant resources. Multiple -p PID options can be specified at daemon start, but after deamon start, only one PID can be added to the explicit list per subsequent numad invocation. Use with -S to precisely control the scope of processes numad can manage. Note that (currently) the specified process will not necessarily be actively managed unless it also meets numad's significance threshold.

-r <PID>
    Remove PID from explicit list of processes to consider for managing. After deamon start, only one PID can be removed from the explicit process list per subsequent numad invocation. Use with -S and -p to precisely control the scope of processes numad can manage. (Currently, removed PIDs are not excluded when scanning all processes. In the future, removed PIDs may be added to a PID-exclusion list. Currently it makes sense to remove a PID from the explicit list only when using -S 0 and previously having used -p to add the PID.)

-S <0|1>
    This option controls whether numad scans all system processes or only the explicit PID list. The default is to scan all processes. Use -S 0 to scan only the explicit PID list. Use -S 1 to again scan all system processes. 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 those three 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. Increase the target value to more exhaustively consume node resources.

-v  Verbose output in log, sets the log level to LOG_INFO. Same effect as -l 6.

-V  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 be specified as well <:MB> so numad can recommend NUMA nodes with available CPU capacity and adequate free memory. This query option can be used regardless of whether numad is running as a daemon. (An invocation using this option when numad is not running as a daemon, will not cause the deamon to start.) Output of this option is a string that contains a NUMA node list. For example: 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).

FILES

/usr/bin/numad
/var/log/numad.log
/var/run/numad.pid

ENVIRONMENT VARIABLES

None.

EXAMPLES

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:

/usr/bin/numad

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

AUTHORS

Bill Gray <bgray@redhat.com>

SEE ALSO

numactl(8)