KNELPerf v2 wave 1: Ultix scheduler breakout + loop skeleton + reports (#826)
ci / audit (push) Failing after 26s
ci / audit (push) Failing after 26s
- scheduler/: day/night engine (conf-driven redesign), psi/perfsnap collectors, proxmox-ctl, systemd timer templates — ported from ~/projects/ultix per the breakout map in scheduler/README.md - loop/: perf-loop driver (baseline/audit/tweak/rebaseline), cpu-bench (new CPU leg), baseline-diff (tolerance compare) — smoke-tested locally - docs/ARCHITECTURE.md: full program design (loop, resource groups, VM/spindle balancing, k8s-vs-Slurm, beszel+RAPL/iDRAC telemetry spine, workload classes, solar/HA + two-site power economics) - docs/report-amt-power-telemetry.md + docs/report-moonlight-desktop.md Redmine: https://projects.knownelement.com/issues/826#note-2
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# systemd units — day/night profile timers
|
||||
|
||||
Install per host (adjust names to your unit namespace if not knelperf-):
|
||||
|
||||
install -m 0644 knelperf-dayprofile.service /etc/systemd/system/
|
||||
install -m 0644 knelperf-dayprofile.timer /etc/systemd/system/
|
||||
install -m 0644 knelperf-nightprofile.service /etc/systemd/system/
|
||||
install -m 0644 knelperf-nightprofile.timer /etc/systemd/system/
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now knelperf-dayprofile.timer knelperf-nightprofile.timer
|
||||
|
||||
Design notes (carried from ultix, keep true here):
|
||||
|
||||
- `Persistent=true` — a missed flip (host powered off) replays at next boot,
|
||||
so the host can never get stuck in the wrong profile across a reboot cycle.
|
||||
- Services are `Type=oneshot` calling the profile engine with the SAME conf
|
||||
file; the conf — not the timer — is the only place values live (fixes the
|
||||
ultix wart where the day-flip time was sed-edited on the live timer).
|
||||
- Day schedule 07:00, night 22:00 local time (batch window 22:00–07:00).
|
||||
Change the OnCalendar here when a host needs a different window; the timers
|
||||
stay trivial and identical in shape.
|
||||
|
||||
Reboot-safety invariant: slice unit files must carry the DAY values as their
|
||||
static defaults, so an unattended reboot always lands in day mode.
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=KNELPerf day resource profile (interactive-first)
|
||||
After=multi-user.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/local/sbin/knelperf-daynight.sh day
|
||||
# Never restart a profile flip; the timer owns scheduling
|
||||
Restart=no
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=KNELPerf day profile flip (07:00 local)
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*-*-* 07:00:00
|
||||
Persistent=true
|
||||
Unit=knelperf-dayprofile.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=KNELPerf night resource profile (batch window 22:00-07:00)
|
||||
After=multi-user.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/local/sbin/knelperf-daynight.sh night
|
||||
Restart=no
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=KNELPerf night profile flip (22:00 local)
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*-*-* 22:00:00
|
||||
Persistent=true
|
||||
Unit=knelperf-nightprofile.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
Reference in New Issue
Block a user