noble (7) tuned-profiles-cpu-partitioning.7.gz

Provided by: tuned_2.21.0-1ubuntu2_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>