2026: OpenClaw ulimit, Speicher und CPU-Leitplanken auf einem gemieteten Mac mini unter launchd
OpenClaw auf einem ProxyMac Mac mini M4 in HK, JP, KR, SG oder US stirbt leise, wenn der residente Speicher das überschreitet, was launchd für sicher hielt: Die UI zeigt noch „läuft“, aber Kanal-Adapter nehmen keine Arbeit mehr an, weil der Kernel Seiten schneller verdrängt als Ihr Probe-Intervall. Operatoren geben „schlechte Modelle“ die Schuld, während das echte Problem Standard ulimit -n 256 bei unbeaufsichtigten Jobs oder Fork-Stürme von MCP-Kindprozessen aus dem MCP-Setup sind. Dieser Leitfaden 2026 kartiert Signaturen stiller OOMs, stellt Shell- vs. LaunchAgent-ulimits gegenüber, nennt drei numerische Telemetrie-Schwellen (70 % RAM-Reserve, 10k offene Dateien, 2 GB Swapins pro Stunde), zeigt ein kopierbares plist-Fragment für SoftResourceLimits und verknüpft die Limits mit paralleler Agenten-Parallelität sowie Health Probes, damit Sie alarmieren, bevor Nutzer es merken.
Kombinieren Sie mit Fehlerbehebung beim Deployment für Log-Triage und Hilfe-Center-Runbooks; skalieren Sie Hardware über Preise, wenn Limits Architektur treffen, nicht Tippfehler.
Stille OOM- und Limit-Signale, die Sie loggen sollten, bevor Sie Modelle beschuldigen
macOS unified logging vergräbt jetsam-Ereignisse oft unter Info-Rauschen. Achten Sie auf Tool-Latenz p95 >4×, während CPU <40 % bleibt—dieses Muster schreit Speicherdruck, nicht langsame LLMs. Ein weiteres Indiz sind ENOTFILE oder Too many open files in MCP-stdio-Brücken, wenn parallele Agenten hochfahren.
- Compressor-Swapins: anhaltend >500 MB/Stunde auf einem 16-GB-Mini heißt: Sie sind schon über bequemer Reserve hinaus.
- LaunchAgent throttleReason-Strings mit
resource-limits—plist-Version in Git erfassen. - Spuriöse 502 vom lokalen HTTP-Gateway, wenn der Worker-Kindprozess nicht spawnen kann—oft
RLIMIT_NPROC.
launchd vs. interaktive Shell: zwei verschiedene ulimit-Welten
SSH-Sitzungen aus ~/.zprofile können ulimit -n 65535 setzen; Ihr LaunchAgent tut es nicht, bis es dupliziert ist. Limits immer im selben Wrapper-Skript ausgeben, das die plist aufruft—nicht aus Ihrer Laptop-Shell.
| Kontext | Typische maxfiles | Wer setzt es | Risiko |
|---|---|---|---|
| SSH-Login | 10240+ | Shell-rc | Irreführend beim launchd-Debug |
| LaunchAgent-Default | 256–1024 | OS-Defaults | MCP-Bursts erschöpfen schnell |
| Nach plist SoftResourceLimits | 8192–65535 | Ihr Ops-Team | Muss zu sauberem FD-Umgang im Code passen |
Telemetrie-Schwellen, die einen Pager rechtfertigen
Erweitern Sie Ihr bestehendes Health-Probe-Skript um drei Zahlen pro Minute an syslog: freie Seiten, Dateideskriptor-Anzahl und Compressor-Seiten. Pagen Sie, wenn zwei aufeinanderfolgende Samples kreuzen:
Plist-Snippet: SoftResourceLimits ohne launchd zu fork-bomben
Schlüssel unter dem Agent-Dict—nicht im globalen Domain. Hard-Limits ≤ soft × 1,25 halten, damit Fehlkonfigurationen schnell scheitern statt zu klemmen.
<key>SoftResourceLimits</key>
<dict>
<key>NumberOfFiles</key><integer>8192</integer>
<key>NumberOfProcesses</key><integer>512</integer>
<key>Stack</key><integer>8388608</integer>
</dict>
Erst mit launchctl kickstart -k gui/$(id -u)/com.example.openclaw neu laden, wenn eine zweite SSH-Sitzung offen ist—Disziplin wie im Leitfaden Gateway-Restart-Recovery.
Parallelität: RSS multiplizieren, bevor Sie Limits anheben
Jeder parallele Agent im Parallelitäts-Leitfaden dupliziert Modell-Handles und MCP-Sockets. Wenn doppelte Parallelität im Lab 3,2 GB RSS kostet, verdoppeln Sie nicht gleichzeitig NumberOfFiles „nur zur Sicherheit“—das maskiert Leaks. Stattdessen Parallelität deckeln, bis RSS nach macOS-Baseline-Diensten in 70 % des physischen RAM passt.
RLIMIT_MEMLOCK anzuheben hilft OpenClaw selten; Keychain-gestützte Secrets wie im Leitfaden Secrets-Härtung statt mmap-lastiger Caches.
FAQ
Soll OpenClaw als root für höhere Limits laufen? Nein—plist-Limits fixen; root vergrößert die Blast-Radius.
Reicht Aktivitätsanzeige? Für Stichproben ja, aber automatisierte memory_pressure-Logs fangen nächtliche Regressionen.
Was ist mit Docker-Sidecars? Wenn Container kollokiert sind, ziehen Sie deren RSS zuerst vom 70 %-Budget ab.
Warum Apple-Silicon-Mac mini weiter zu ressourcenlastigem OpenClaw passt
M4 unified memory lässt Modellgewichte und macOS-Dienste Bandbreite teilen ohne PCIe-NUMA-Überraschungen billiger x86-VMs. Regionale Miete über Preise hält Finance aligned, wenn Sie eine 24-GB-SKU für höhere Limits brauchen, und native launchd-Integration schlägt systemd-in-Linux-Container, die vorgeben, Mac-freundlich zu sein. Plist-Versionen neben Git-Commits wie in GitOps dokumentieren, diesen Leitfaden ins Onboarding verlinken und den Mini recyceln, wenn die Workload endet—Limits sind einfacher, wenn die Hardware vorhersagbar ist.
OpenClaw-Hardware passend dimensionieren
HK / JP / KR / SG / US Mac mini für Automatisierung mit Reserve