fix(hosts/merope/sabnzbd): drop MemoryHigh, register for oomd swap kills

MemoryHigh is enforced by reclaim, and reclaiming anonymous pages means
writing them to swap. Holding sabnzbd near 4G resident therefore pushed 5.2G
into the 8G swapfile: the limit did not contain the growth, it converted a
RAM problem into swap exhaustion, which is the failure that actually
threatens the box. Without it sabnzbd grows in RAM, where oomd's pressure
rule can see it stall.

ManagedOOMSwap=kill registers this unit alone as a swap-monitoring
candidate. oomd ranks swap candidates by usage, so scoping it here means the
early trigger at 90% swap can only ever select sabnzbd, while jellyfin's
cold pages stay ineligible. The pressure rule on system.slice remains the
broader net for anything else.

Assisted-by: pi (claude-opus-5)
This commit is contained in:
Gabriel Fontes
2026-08-11 10:12:46 -03:00
parent 06c59fbf2a
commit 1ad2dd7564
@@ -140,8 +140,11 @@ in {
# Yield to playback and library scans; par2/unrar inherit this as children
CPUWeight = 20;
IOWeight = 20;
# If memory spikes, prioritize reclaiming from its own page caches
MemoryHigh = "4G";
# Registering only this unit for swap monitoring makes it the sole candidate
# once swap passes oomd's 90% limit, so ranking by swap usage cannot pick a
# service that is merely holding cold pages. Catches a runaway early; the
# pressure rule on system.slice is the later, broader net.
ManagedOOMSwap = "kill";
};
sops.secrets = {