Описание тега cpuset

NoneCpuset - это команда, используемая для ограничения процесса определенным процессором и узлом памяти

На странице руководства:

   A cpuset defines a list of CPUs and memory nodes.

   The CPUs of a system include all the logical processing units on
   which a process can execute, including, if present, multiple
   processor cores within a package and Hyper-Threads within a processor
   core.  Memory nodes include all distinct banks of main memory; small
   and SMP systems typically have just one memory node that contains all
   the system's main memory, while NUMA (non-uniform memory access)
   systems have multiple memory nodes.

   Cpusets are represented as directories in a hierarchical pseudo-
   filesystem, where the top directory in the hierarchy (/dev/cpuset)
   represents the entire system (all online CPUs and memory nodes) and
   any cpuset that is the child (descendant) of another parent cpuset
   contains a subset of that parent's CPUs and memory nodes.  The
   directories and files representing cpusets have normal filesystem
   permissions.

   Every process in the system belongs to exactly one cpuset.  A process
   is confined to run only on the CPUs in the cpuset it belongs to, and
   to allocate memory only on the memory nodes in that cpuset.  When a
   process fork(2)s, the child process is placed in the same cpuset as
   its parent.  With sufficient privilege, a process may be moved from
   one cpuset to another and the allowed CPUs and memory nodes of an
   existing cpuset may be changed.

   When the system begins booting, a single cpuset is defined that
   includes all CPUs and memory nodes on the system, and all processes
   are in that cpuset.  During the boot process, or later during normal
   system operation, other cpusets may be created, as subdirectories of
   this top cpuset, under the control of the system administrator, and
   processes may be placed in these other cpusets.

   Cpusets are integrated with the sched_setaffinity(2) scheduling
   affinity mechanism and the mbind(2) and set_mempolicy(2) memory-
   placement mechanisms in the kernel.  Neither of these mechanisms let
   a process make use of a CPU or memory node that is not allowed by
   that process's cpuset.  If changes to a process's cpuset placement
   conflict with these other mechanisms, then cpuset placement is
   enforced even if it means overriding these other mechanisms.  The
   kernel accomplishes this overriding by silently restricting the CPUs
   and memory nodes requested by these other mechanisms to those allowed
   by the invoking process's cpuset.  This can result in these other
   calls returning an error, if for example, such a call ends up
   requesting an empty set of CPUs or memory nodes, after that request
   is restricted to the invoking process's cpuset.

   Typically, a cpuset is used to manage the CPU and memory-node
   confinement for a set of cooperating processes such as a batch
   scheduler job, and these other mechanisms are used to manage the
   placement of individual processes or memory regions within that set
   or job.