NUMACTL(1)

NAME
numactl - manage NUMA policy configuration

SYNOPSIS
numactl [-l policy] [-m domain] [-c domain] cmd ...
numactl -g [-p pid] [-t tid]
numactl -s [-l policy] [-m domain] [-c domain] [-p pid] [-t tid]

DESCRIPTION
The numactl command can be used to assign NUMA policies to processes/threads, run commands with a given NUMA policy, and query information about NUMA policies on running processes.

numactl requires a target to modify or query. The target may be specified as a command, process id or a thread id. Using --get the target's NUMA policy may be queried. Using --set the target's NUMA policy may be queried. If no target is specified, numactl operates on itself. Not all combinations of operations and targets are supported. For example, you may not set the id of an existing set or query and launch a command at the same time.

Each process and thread has a NUMA policy. By default the policy is NONE. If a thread policy is NONE, then the policy will fall back to the process. If the process policy is NONE, then the policy will fall back to the system default. The policy may be queried by using --get.

The options are as follows:

--cpudomain domain, -c domain
    Set the given CPU scheduling policy. Constrain the object (tid, pid, command) to run on CPUs that belong to the given domain.

--get, -g
    Retrieve the NUMA policy for the given thread or process id.

--set, -s
    Set the NUMA policy for the given thread or process id.

--memdomain domain, -m domain
    Constrain the object (tid, pid, command) to the given domain. This is only valid for fixed-domain and fixed-domain-rr. It must not be set for other policies.

--mempolicy policy, -l policy
    Set the given memory allocation policy. Valid policies are none, rr, fixed-domain, fixed-domain-rr, first-touch, and first-touch-rr. A memdomain argument is required for fixed-domain and fixed-domain-rr.

--pid pid, -p pid
    Operate on the given pid.

--tid tid, -t tid
    Operate on the given tid.

EXIT STATUS

EXAMPLES
Create a /bin/sh process with memory coming from domain 0, but CPUs coming from domain 1:
    numactl --mempolicy=fixed-domain --memdomain=0 --cpudomain=1 /bin/sh

Query the NUMA policy for the <sh pid>:
    numactl --get --pid=<sh pid>

Set the NUMA policy for the given TID to round-robin:
    numactl --set --mempolicy=rr --tid=<tid>

SEE ALSO
cpuset(2), numa(4)

HISTORY
The numactl command first appeared in FreeBSD 11.0.

AUTHORS
Adrian Chadd <adrian@FreeBSD.org>