Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Remove. This is done by tuned now

...

  • /sys/module/kvm/parameters/halt_poll_ns = 0
    /sys/kernel/ktimer_lockless_check = 1
    /sys/kernel/mm/ksm/run = 2

  • Kernel parameters :
    isolcpus=managed_irq,domain,{isolated_cores}
    intel_pstate=disable
    nosoftlockup
    tsc=reliable
    nohz=on
    nohz_full={isolated_cores}
    rcu_nocbs={isolated_cores}
    irqaffinity={non_isolated_cores}
    processor.max_cstate=1
    intel_idle.max_cstate=1
    cpufreq.default_governor=performance
    rcu_nocb_poll

  • kernel thread priorities :
    group.ksoftirqd=0:f:2:*:^\[ksoftirqd
    group.ktimers=0:f:2:*:^\[ktimers
    group.rcuc=0:f:4:*:^\[rcuc
    group.rcub=0:f:4:*:^\[rcub
    group.ktimersoftd=0:f:3:*:^\[ktimersoftd

  • configures irqbalance with isolated_cores list

  • configures workqueue with isolated_cores list

  • kernel.hung_task_timeout_secs = 600
    kernel.nmi_watchdog = 0
    kernel.sched_rt_runtime_us = -1
    vm.stat_interval = 10
    kernel.timer_migration = 0

Interrupt Requests

irqbalance is a daemon for SMP (Symmetric shared-memory multiprocessing) systems to help balance the CPU load generated by interrupts across all of a systems CPUs. irqbalance identifies the highest volume interrupt sources, and isolates each of them to a single unique CPU, so that load is spread as much as possible over an entire processor set, while minimizing cache miss rates for irq handlers.

The irqmask define the environment variable IRQBALANCE_BANNED_CPUS. It sould ignore some CPU and never assign interrupts (more details here, the irqbalance manual). This variable is a mask where the first CPU is the least signifiant bit and specified CPUs in cpusystem should be set to 0. The workqueuemask is his negation and it's used to configure the kernel.

Example:

...


Kernel configuration

The cluster is installed with a real-time kernel on each node. So, the kernel run with some parameters:

  • isolcpus parameter: Isolate some CPUs from the scheduler. It's the value of cpumachinesrt.
  • rcu_nocbs parameter: Remove one or more CPUsfrom candidates for running callbacks. It's the value of cpumachinesrt.

VM configuration

The official documentation on the XML format of libvirt is here.

...