KI / Automatisierung 22. April 2026

2026: OpenClaw ulimit, Speicher und CPU-Leitplanken auf einem gemieteten Mac mini unter launchd

ProxyMac Engineering Team 22. April 2026 ~12 Min. Lesezeit

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.

KontextTypische maxfilesWer setzt esRisiko
SSH-Login10240+Shell-rcIrreführend beim launchd-Debug
LaunchAgent-Default256–1024OS-DefaultsMCP-Bursts erschöpfen schnell
Nach plist SoftResourceLimits8192–65535Ihr Ops-TeamMuss 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:

Regelpaket: freier RAM unter 2,5 GB auf einer 16-GB-SKU, offene FDs über 8000 oder Compressor-Seiten über 120000—für 24-GB-Maschinen proportional anpassen.

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.

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.

Secrets-Hinweis: 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