8G 記憶體 Mac Mini 極限:記憶體壓縮與 Swap 優化本地常駐 OpenClaw(2026)
你買了入門款 Mac Mini——常見的 8G 或 16G 統一記憶體配置——希望 OpenClaw 作為家庭實驗室閘道 7×24 常駐,並偶爾跑本地端側模型(ULM)。Linux VPS 教學讓你改 swappiness;在 Apple Silicon 上,真正要盯的是記憶體壓縮、APFS 交換檔,以及 GPU、CPU、神經網路引擎如何共享同一塊實體記憶體。
本文面向 Apple 生態愛好者。你將把活動監視器當儀表板,限制 OpenClaw Node 並行,並選擇不會悄悄把機器拖進 swap 風暴的量化模型尺寸。
為何 8G Mac Mini 跑 OpenClaw 容易「頂滿」
OpenClaw 不是單一程序:包含 Node 閘道、可選 MCP 子程序、瀏覽器自動化,有時還有本地推理服務(MLX、Ollama、llama.cpp)。
| 層級 | 典型 RSS(閒置→繁忙) | 說明 |
|---|---|---|
| macOS + WindowServer(無頭仍有服務) | 2.5–4 GB | 登入 GUI 時更高 |
| OpenClaw 閘道(Node) | 400 MB–1.2 GB | 會話越長越大 |
| 每個 MCP stdio 服務 | 各 50–300 MB | 檔案系統 + GitHub 疊加快 |
| 本地 7B Q4 ULM(MLX/Ollama) | 4.5–6 GB | 8G 主機上的大頭 |
| 瀏覽器工具工作階段 | 500 MB–2 GB | WebKit 是隱形成本 |
可引用定義:在 Apple Silicon 上,統一記憶體表示載入模型權重的 GPU 與提供 HTTP 的 Node 閘道共用同一塊實體 RAM。
調校前請先完成 Mac Mini 上的 OpenClaw 安裝。
統一記憶體:M1 至 M4 預算表
| 晶片 / 記憶體檔位 | OpenClaw + 僅雲端 API | OpenClaw + 小型本地 ULM | 建議 |
|---|---|---|---|
| M1/M2 8G | ✓ 閘道 + 1–2 個 MCP | ⚠ 僅 3B–4B 量化 | 以雲 API 為主 |
| M2/M3 16G | ✓ 較寬裕 | ✓ 單工作階段 7B Q4 | 家用伺服器甜點配置 |
| M4 16G | ✓ + 輕度瀏覽器工具 | ✓ 7B Q4,避免 ULM 與瀏覽器並行 | 將 maxConcurrentTasks 設為 2 |
| M4 24G+ | ✓ 可區分預發/正式 | ✓ 7B–8B + 閘道餘量 | 見 本地 MLX 路由 |
外部參考:Apple Mac mini 技術規格。選購時請在 8G/16G 配置間依是否常駐本地 7B 模型取捨。
情境 A — 8G 家用閘道(僅雲模型)
對接API 供應商,跳過本地 7B。同時啟用檔案系統 + GitHub MCP 前保留 ≥ 3 GB 可用記憶體。設 maxConcurrentTasks: 1。
若 X 則 Y:閒置時壓縮記憶體持續高於 2 GB,先關閉瀏覽器工具集或升級記憶體。
情境 B — 16G + 本地 ULM 邊車
只載入一個量化模型。配合 並行上限。
活動監視器:五個關鍵欄
- 記憶體壓力
- App 記憶體
- 已壓縮
- 已使用的交換 — 8G 主機 > 2 GB 需處理
- 快取檔案
memory_pressure
vm_stat | egrep 'Pages (free|active|inactive|speculative|wired|compressed|swap)'
sysctl hw.memsize
Swap 與記憶體壓縮(macOS)
- 降低需求
- 錯開負載
- 觀察 swapins
launchd 護欄見 資源限制指南。
OpenClaw 設定
gateway:
maxConcurrentTasks: 1 # 8 GB: start at 1; 16 GB: 2
taskTimeoutMs: 120000
agents:
maxParallelToolCalls: 2 # lower on 8 GB
mcp:
maxServers: 2 # filesystem + one optional
<key>EnvironmentVariables</key>
<dict>
<key>NODE_OPTIONS</key>
<string>--max-old-space-size=1024</string>
</dict>
七步執行手冊
步驟 1 — 閒置基線
vm_stat | head -12
步驟 2 — 僅啟動閘道
openclaw gateway start # or launchctl kickstart your plist label
步驟 3 — 逐個新增 MCP
先檔案系統 MCP,再視壓力加 GitHub MCP。
步驟 4 — 載入 ULM 前設定並行
步驟 5 — 低峰預熱 ULM
# Example: Ollama pull + run small model
ollama pull qwen2.5:3b-instruct-q4_K_M
ollama run qwen2.5:3b-instruct-q4_K_M "Reply OK"
步驟 6 — 定期記錄
/usr/bin/logger -t openclaw-mem "$(memory_pressure 2>&1 | head -1)"
步驟 7 — 回滾閾值
壓縮 > 3 GB 或 swap > 2 GB:卸載 ULM並重設 maxConcurrentTasks: 1。
疑難排解
現象:卡住但 CPU 低
結束瀏覽器 MCP;重啟閘道;pgrep -fl openclaw 查孤兒程序。
現象:ULM 變慢約 10 倍
暫停瀏覽器工具;8G 峰值只跑 ULM 或 OpenClaw 其一。
現象:JavaScript heap out of memory
先限制工具輸出再調 NODE_OPTIONS。
依記憶體檔位的建議
| 你的記憶體 | 建議 |
|---|---|
| 8 GB | 雲 API 為主;maxConcurrentTasks: 1;最多 2 MCP |
| 16 GB | 7B Q4 + 並行 2;每週看活動監視器 |
| 24 GB+ | 混合 MLX;仍限制瀏覽器 |