Provided by: tuned_2.22.1-1ubuntu4_all bug

NAME

       tuned-profiles-cpu-partitioning - Partition CPUs into isolated and housekeeping.

DESCRIPTION

       The  cpu-partitioning*  profiles  partition the system CPUs into isolated and housekeeping
       CPUs. These profiles are intended for latency-sensitive workloads.

       An isolated CPU incurs reduced jitter and reduced interruptions by  the  kernel.  This  is
       achieved   by  clearing  the  CPU  from  user-space  processes,  movable  kernel  threads,
       interruption handlers, kernel timers, etc. The only fixed source of interruptions  is  the
       1Hz  tick  maintained  by the kernel to keep CPU usage statistics. Otherwise, the incurred
       jitter and interruptions, if any, depend on the kernel services used by the thread running
       on  the  isolated  CPU.  Threads  that run a busy loop without doing system calls, such as
       user-space drivers that access the hardware directly, are only expected to be  interrupted
       once a second by the 1Hz tick.

       A  housekeeping CPU is the opposite of an isolated CPU. Housekeeping CPUs run all daemons,
       shell processes, kernel threads, interruption handlers and work  that  can  be  dispatched
       from isolated CPUs such as disk I/O, RCU work, timers, etc.

PROFILES

       The following profiles are provided:

       cpu-partitioning
              Profile partitioning the system CPUs into isolated and housekeeping CPUs.

       cpu-partitioning-powersave
              Profile  similar  to the cpu-partitioning profile, but with more flexibility on the
              C-states configuration.

CONFIGURATION

       The     cpu-partitioning     profile      is      configured      by      editing      the
       /etc/tuned/cpu-partitioning-variables.conf file. There are two configuration options:

       isolated_cores=<CPU-LIST>
              List  of  CPUs  to  isolate. This option is mandatory. Any CPUs not in this list is
              automatically considered a housekeeping CPU.

       no_balance_cores=<CPU-LIST>
              List of CPUs not be considered  by  the  kernel  when  doing  system  wide  process
              load-balancing.  Usually,  this  list  should  be the same as isolated_cores=. This
              option is optional.

       The    cpu-partitioning-powersave    profile    is    configured    by     editing     the
       /etc/tuned/cpu-partitioning-powersave-variables.conf file. It supports the same options as
       the cpu-partitioning profile and one additional option:

       max_power_state=<MAX_CSTATE>
              Maximum c-state the cores are allowed to enter. Can be expressed as it's name (C1E)
              or  minimum wake-up latency, in micro-seconds.  This parameter is provided as-is to
              `force_latency`.   Default   is   set   to   "cstate.name:C1|10"   to   behave   as
              cpu-partitioning profile.

IMPORTANT NOTES

       * The  system  should  be  rebooted  after applying the cpu-partitioning* profiles for the
         first time or changing its configuration

       * The cpu-partitioning* profiles can be used in bare-metal and virtual machines

       * When using the cpu-partitioning* profiles in bare-metal, it is strongly  recommended  to
         "mask"  the  ksm  and  ksmtuned services in systemd (if they are installed). This can be
         done with the following command:

             # systemctl mask ksm ksmtuned

       * The cpu-partitioning* profiles do not use the kernel's isolcpus= feature

       * On a NUMA system, it is recommended to have at least one housekeeping CPU per NUMA node

       * The cpu-partitioning* profiles do not support isolating the L3 cache. This means that  a
         housekeeping  CPU  can  still  thrash  cache  entries pertaining to isolated CPUs. It is
         recommended to use cache isolation technologies to remedy this problem, such as  Intel's
         Cache Allocation Technology

       * Whether  or  not  the kernel is going to be able to deactivate the tick on isolated CPUs
         depend on a few factors concerning the running thread  behavior.   Please,  consult  the
         nohz_full documentation in the kernel to learn more

       * The  Linux  real-time  project  has  put  together  a document on the best practices for
         writing real-time applications.  Even  though  the  cpu-partitioning*  profiles  do  not
         guarantee  real-time  response  time,  much  of  the  techniques  for  writing real-time
         applications also apply for applications intended to  run  under  the  cpu-partitioning*
         profiles. Please, refer to this document at https://rt.wiki.kernel.org

FILES

       /etc/tuned/cpu-partitioning-variables.conf
       /etc/tuned/cpu-partitioning-powersave-variables.conf
       /etc/tuned/tuned-main.conf

SEE ALSO

       tuned(8)  tuned-adm(8)  tuned-profiles(7)  tuned-profiles-atomic(7)  tuned-profiles-sap(7)
       tuned-profiles-sap-hana(7)        tuned-profiles-mssql(7)         tuned-profiles-oracle(7)
       tuned-profiles-realtime(7)      tuned-profiles-nfv-host(7)     tuned-profiles-nfv-guest(7)
       tuned-profiles-compat(7)     tuned-profiles-postgresql(7)      tuned-profiles-openshift(7)
       tuned-profiles-spectrumscale-ece(7)

AUTHOR

       Jaroslav Škarvada <jskarvad@redhat.com>
       Luiz Capitulino <lcapitulino@redhat.com>
       Andrew Theurer <atheurer@redhat.com>