affinity: Process Affinity

Description Usage Arguments Details References Examples

Description

Get/set the process's CPU affinity mask. The affinity mask binds the process to specific core(s) within the machine. Not supported on all systems, has_affinity() shows if this is available.

Usage

1
2
3
4
5
6
7
8
9

Arguments

cpus

Which cpu cores to bind to: vector of integers between 1 and ncores()

Details

Setting a process affinity allows for restricting the process to only use certain cores in the machine. The cores are indexed by the operating system as 1 to ncores(). Calling setaffinity() with no arguments resets the process to use any of the available cores.

Note that setaffinity is different from setting r_limit values in the sense that it is not a one-way process. An unprivileged user can change the process affinity to any value. In order to 'lock' an affinity value, one would have to manipulate Linux capability value for CAP_SYS_NICE.

References

SCHED_SETAFFINITY(2)

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
## Not run: 
# Current affinity
ncores()
getaffinity()
getaffinity_count()

# Restrict process to core number 1.
setaffinity(1)
getaffinity()

# Reset
setaffinity()
getaffinity()

## End(Not run)

jeroen/RAppArmor documentation built on May 19, 2019, 5:09 a.m.