1 Introduction #
The cset
utility supports cpuset controller only
on v1 hierarchy (legacy or hybrid in systemd lingo). On a system with the
unified (v2) hierarchy, cset
is not supported and
cpuset controller can be used via systemd.
In the Linux kernel, the cpuset facility provides a mechanism for creating logical entities called “cpusets” that encompass definitions of CPUs and NUMA Memory Nodes (if NUMA is available). Cpusets constrain the CPU and Memory placement of a task to only the resources defined within that cpuset. These cpusets can then be arranged into a nested hierarchy visible in the “cpuset” virtual file system. Sets of tasks can be assigned to these cpusets to constrain the resources that they use. The tasks can be moved from one cpuset to another to use other resources defined in those other cpusets.
The cset
command is a Python application that provides
a command line front-end for the Linux cpusets functionality. Working with
cpusets directly can be confusing and slightly complex. The cset tool
hides that complexity behind an easy-to-use command line interface.
There are two distinct use cases for cset: the basic shielding use case
and the “advanced” case of using raw set
and proc
subcommands. The basic shielding function is
accessed with the shield
subcommand and described in
the next section. Using the raw set
and
proc
subcommands allows one to set up arbitrarily
complex cpusets and is described in
Chapter 4, Full-featured cpuset manipulation commands.
Note that in general, one either uses the shield
subcommand or a combination of the set
and
proc
subcommands. One rarely, if ever, uses all of
these subcommands together. Doing so will likely become too confusing.
Additionally, the shield
subcommand sets up its
required cpusets with exclusively marked CPUs. This can interfere with
your cpuset strategy. If you find that you need more functionality for
your strategy than shield
provides, go ahead and
transition to using set
and proc
exclusively. It is straightforward to implement what
shield
does with a few extra set
and
proc
subcommands.
- For a full list of cset subcommands
tux >
cset
help
- For in-depth help on individual subcommands
tux >
cset
help
<subcommand>- For options on individual subcommands
tux >
cset
<subcommand>(-h | --help)