Streaming stack is on-demand, not always-on

Measured rather than assumed: the compositor and Sunshine together hold
220 MiB on the 3060 — sway ~112, Sunshine ~108. That card also runs the
local LLM, and with an 11.3 GB model resident on a 12 GB card the free
headroom goes from 992 MiB to 772. Losing a fifth of what is left matters
for KV cache growth, so leaving it running was the wrong default.

sway-headless and sunshine no longer start at boot. `stream on` brings them
up, `stream status` reports state and VRAM, and sunshine-idle-stop.timer
checks every five minutes whether any Moonlight client still holds a
connection to 47984/47989/48010 — stopping the stack after 15 idle minutes
so a forgotten session does not sit on memory the inference stack wants.

Note for future edits: `systemctl --user disable` on a unit dotbot has
symlinked into ~/.config/systemd/user deletes the symlink itself, because
systemd treats it as a linked unit. Re-run ./install after disabling one.
This commit is contained in:
2026-09-14 15:46:32 -04:00
parent d5cb5f5690
commit de78118624
5 changed files with 88 additions and 4 deletions
+4 -2
View File
@@ -12,6 +12,8 @@
- link:
~/.config/sway/headless.conf: hosts/mainframe/sway/headless.conf
~/.config/systemd/user/sway-headless.service: hosts/mainframe/systemd/sway-headless.service
~/.config/systemd/user/sunshine-idle-stop.service: hosts/mainframe/systemd/sunshine-idle-stop.service
~/.config/systemd/user/sunshine-idle-stop.timer: hosts/mainframe/systemd/sunshine-idle-stop.timer
~/.config/systemd/user/sunshine.service: hosts/mainframe/systemd/sunshine.service
~/.config/inbox-tidy: hosts/mainframe/config/inbox-tidy
~/.config/llmfit: hosts/mainframe/config/llmfit
@@ -41,5 +43,5 @@
description: Reloading user units
- command: systemctl --user enable --now inbox-tidy.timer movie-recs.timer rent-utilities.timer ddns.timer
description: Enabling the singleton timers (mainframe only)
- command: systemctl --user enable sway-headless.service sunshine.service
description: Enabling the headless compositor and Sunshine (not started here — it takes the GPU)
- command: systemctl --user enable --now sunshine-idle-stop.timer
description: Enabling the streaming idle-stop watchdog (the stack itself starts on demand via `stream on`)