Add updated tuning configuration

Uses a much nicer CPU tuning configuration, leveraging systemd's
AllowedCPUs and CPUAffinity options within a set of slices (some
default, some custom).

Configuration is also greatly simplified versus the previous
implementation, simply asking for a number of CPUS for both the system
and OSDs, and calculating everything else that is required.

Also switches (back) to the v2 unified cgroup hierarchy by default as
required by the systemd AllowedCPUs directive.
This commit is contained in:
2023-09-01 15:42:29 -04:00
parent 131caba0bd
commit 07d75573d6
12 changed files with 258 additions and 17 deletions

View File

@ -0,0 +1,2 @@
[Service]
Slice = osd.slice

View File

@ -0,0 +1,13 @@
# PVC VM slice unit
# {{ ansible_managed }}
[Unit]
Description=Virtual Machine and Container Slice
Documentation=man:systemd.special(7)
Before=slices.target
[Slice]
CPUAccounting = true
Delegate = true
CPUAffinity = {{ cpuset_vm }}
AllowedCPUs = {{ cpuset_vm }}

View File

@ -0,0 +1,13 @@
# PVC ceph-osd slice unit
# {{ ansible_managed }}
[Unit]
Description=Ceph OSD Slice
Documentation=man:systemd.special(7)
Before=slices.target
[Slice]
CPUAccounting=true
Delegate = true
CPUAffinity = {{ cpuset_osd }}
AllowedCPUs = {{ cpuset_osd }}

View File

@ -0,0 +1,13 @@
# PVC VM slice unit
# {{ ansible_managed }}
[Unit]
Description = Core System Slice
Documentation = man:systemd.special(7)
Before = slices.target
[Slice]
CPUAccounting = true
Delegate = true
CPUAffinity = {{ cpuset_system }}
AllowedCPUs = {{ cpuset_system }}

View File

@ -0,0 +1,13 @@
# PVC VM slice unit
# {{ ansible_managed }}
[Unit]
Description = User and Session Slice
Documentation = man:systemd.special(7)
Before = slices.target
[Slice]
CPUAccounting = true
Delegate = true
CPUAffinity = {{ cpuset_system }}
AllowedCPUs = {{ cpuset_system }}