From afbc586f86c327a64768fb6c44b8dfd33dc817ea Mon Sep 17 00:00:00 2001 From: Jim Gauld Date: Fri, 20 Dec 2024 20:36:02 -0500 Subject: [PATCH] systemd DropIn to disable software CPUShares on systemcontroller Based on DC scale batch subcloud prestage operations, it was observed 80 cores fully utilized zero idle, causing starvation of software API. The software-controller-daemon process was spreading work over multiple seconds. Any processes used for DC operations are payload and should fight for CPU equally. This updates the list of systemd services that require disabled CPUShares instead of having the reduced value 128 on all other nodes. This adds: software-controller-daemon, software, and sw-patch-controller-daemon. Partial-Bug: 2092319 TEST PLAN: - PASS: Fresh install DC lab - PASS: Verify systemcontroller DropIn files are created with CPUShares=1024 for: software-controller-daemon, software, sw-patch-controller-daemon Change-Id: I1c7b4e0c19e9209c59a70bb6b1826e18fdf59335 Signed-off-by: Jim Gauld --- .../modules/platform/manifests/dcmanager.pp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/puppet-manifests/src/modules/platform/manifests/dcmanager.pp b/puppet-manifests/src/modules/platform/manifests/dcmanager.pp index 3660ee8aa..1a93c34d9 100644 --- a/puppet-manifests/src/modules/platform/manifests/dcmanager.pp +++ b/puppet-manifests/src/modules/platform/manifests/dcmanager.pp @@ -115,10 +115,22 @@ class platform::dcmanager # Batch operations require extremely parallel cpu intensive usage # of both these cgroups. The dc services currently inherit the # sm.service cgroup; the sm.service override is generated by sm.pp. + # We do not want to affect software API performance. # We also remove the settings for services: pmon, sysinv-agent, - # collectd, fm-api, sm-api. There is no reason to limit their - # CPUShares on systemcontroller. - $service_names = [ 'pmon', 'ssh', 'sysinv-agent', 'collectd', 'fm-api', 'sm-api' ] + # collectd, fm-api, sm-api, software-controller-daemon, + # software, sw-patch-controller-daemon. + # There is no reason to limit their CPUShares on systemcontroller. + $service_names = [ + 'pmon', + 'ssh', + 'sysinv-agent', + 'collectd', + 'fm-api', + 'sm-api', + 'software-controller-daemon', + 'software', + 'sw-patch-controller-daemon' + ] $services = $service_names.map |$var| { "${var}.service" } $services_string = join($services, ' ') $dirs = $service_names.map |$var| { "/etc/systemd/system/${var}.service.d" }