AI / 自动化

8G 内存 Mac Mini 极限:内存压缩与 Swap 优化本地常驻 OpenClaw(2026)

8G Mac Mini OpenClaw 内存优化:统一内存、Swap 与本地 ULM 调优

你买了入门款 Mac Mini——国行常见的 8G 或 16G 统一内存配置——希望 OpenClaw 作为家庭实验室网关 7×24 常驻,并偶尔跑本地端侧模型(ULM)。Linux VPS 教程让你改 swappiness;在 Apple Silicon 上,真正要盯的是内存压缩APFS 交换文件,以及 GPU、CPU、神经网络引擎如何共享同一块物理内存。

本文面向 Apple 生态折腾者,不是机房管理员。你将把活动监视器当仪表盘,限制 OpenClaw Node 并发,并选择不会悄悄把机器拖进 swap 风暴的量化模型尺寸

披露:ProxyMac 发布 Mac 托管类指南;OpenClaw 为中立开源/网关方案。文中配置参考 2026 年 6 月常见网关设置;定价信息来自 ProxyMac 公开价目与 Apple 官网。

为何 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 GB8G 主机上的大头
浏览器工具会话500 MB–2 GBWebKit 是隐形开销

可引用定义:在 Apple Silicon 上,统一内存意味着加载模型权重的 GPU 与提供 HTTP 的 Node 网关共用同一块物理 RAM——不像许多 Linux GPU 机器那样有独立显存可“腾挪”。

因此 8G 机器在 top 里看似正常,一旦加载本地 ULM压缩内存会上升、已用交换会跳动。调优前请先完成 Mac Mini 上的 OpenClaw 安装

统一内存:M1 至 M4 预算表

芯片 / 内存档位OpenClaw + 仅云端 APIOpenClaw + 小型本地 ULM建议
M1/M2 8G✓ 网关 + 1–2 个 MCP⚠ 仅 3B–4B 量化以云 API 为主;ULM 仅做摘要
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 家用网关(仅云模型)

OpenClaw 对接API 提供商,跳过本地 7B。在同时启用文件系统 + GitHub MCP 前,保留 ≥ 3 GB 可用内存。网关配置设 maxConcurrentTasks: 1,浏览器工具串行执行。

若 X 则 Y:空闲时压缩内存持续高于 2 GB,先关掉浏览器工具集,或升级内存/把 ULM 迁到其他机器。

场景 B — 16G + 本地 ULM 边车

只加载一个量化模型(如 7B Q4 ≈ 4.5 GB)。在 OpenClaw 未跑重度浏览器自动化时再调度 ULM。配合 并发上限——内存与 API 限流往往同时触顶。

活动监视器:五个关键列

打开活动监视器 → 内存

  1. 内存压力 — 绿/黄/红;变黄就应减少 MCP
  2. App 内存 — 关注 Node/OpenClaw 行在长会话后的跳变
  3. 已压缩 — 系统压缩非活跃页;持续攀升表示 RAM 不足
  4. 已使用的交换 — APFS 交换;8G 主机 > 2 GB 需处理
  5. 缓存文件 — 可回收,勿与 Apple 统计里的“空闲”混淆

SSH 无头环境可用 CLI:

memory_pressure vm_stat | egrep 'Pages (free|active|inactive|speculative|wired|compressed|swap)' sysctl hw.memsize

浸泡测试时每 5 分钟记录快照,并与 OpenClaw JSONL 时间戳对照。

Swap 与内存压缩(macOS,非 Linux)

macOS 通过 APFS 上的动态交换文件自动管理 swap。一般不要试图关闭压缩——那是 Apple 撑满 8G 的手段。应:

  • 降低需求 — 更小量化、更少 MCP、更短上下文
  • 错开负载 — 避免在 OpenClaw 定时高峰预热 ULM
  • 观察 swapinsvm_statPageins/Swapins 加速即可能在抖动

若需 launchd 级护栏(ulimit、plist),请参阅 资源限制指南——本文讲硬件预算,该文讲进程上限

OpenClaw 配置:限制 Node 与 MCP 扩散

网关片段示例(YAML/JSON 因版本而异,请对照 openclaw.json):

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

Node 堆上限(LaunchAgent EnvironmentVariables):

<key>EnvironmentVariables</key> <dict> <key>NODE_OPTIONS</key> <string>--max-old-space-size=1024</string> </dict>

16G 常用 --max-old-space-size=20488G 建议 1024 或更低,为 MCP + ULM 留余量。

七步运行手册:低内存 Mac Mini 稳定运行 OpenClaw

步骤 1 — 空闲基线快照

重启后、启动 OpenClaw 前:

vm_stat | head -12

记录 Pages freeCompressed

步骤 2 — 仅启动网关,确认压力为绿

openclaw gateway start # or launchctl kickstart your plist label

等待 10 分钟;16G 且仅云 API 时,内存压力应保持绿色

步骤 3 — 逐个添加 MCP

先启用文件系统 MCP,观察约 +200–400 MB;仅在压力允许时再加 GitHub MCP。

步骤 4 — 加载 ULM 前设定并发

应用 maxConcurrentTasks: 1(8G)或 2(16G)。用双任务队列验证:第二任务应等待,而非再 fork 浏览器。

步骤 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"

8G 上若 60 秒内交换使用跳升 > 1 GB,请降级量化或将 ULM 迁出本机。

步骤 6 — 定期记录内存

用 Cron 或 LaunchAgent 执行:

/usr/bin/logger -t openclaw-mem "$(memory_pressure 2>&1 | head -1)"

步骤 7 — 记录回滚阈值

若压缩 > 3 GB(8G 主机)或 swap > 2 GB:卸载 ULM,设 maxConcurrentTasks: 1,重启网关。

故障排查

现象:OpenClaw“卡住”但 CPU 很低

模式:内存压力红色、swap 攀升、风扇安静。
处理:结束浏览器 MCP 会话;重启网关;降低 maxParallelToolCalls;检查孤儿 Node(pgrep -fl openclaw)。

现象:本地 ULM 先快后慢约 10 倍

模式:vm_statCompressor 页持续增加。
处理:暂停浏览器工具;卸载模型;8G 上峰值时段只跑 ULM OpenClaw 其一。

现象:网关日志 JavaScript heap out of memory

模式:长对话 + 超大工具输出。
处理:先收紧工具输出上限再动 NODE_OPTIONS;截断 JSONL 会话;plist 环境变量见资源限制一文。

你的内存建议做法
8 GB以云 API 为主;maxConcurrentTasks: 1;最多 2 个 MCP;仅低峰跑 3B–4B ULM
16 GB7B Q4 ULM + OpenClaw,并发 2;每周看活动监视器
24 GB+混合 MLX 路由;仍限制浏览器;持续观察 swap

FAQ

8G Mac Mini 适合跑 OpenClaw 吗?+
可作为连云网关,但需严格上限。若要与常驻 Agent 同时跑本地 7B,建议至少 16G
关闭内存压缩有用吗?+
没有。Apple 未向普通用户提供可靠的一键关闭方式。应减少负载。
与 ulimit / launchd 那篇文章有何不同?+
本文讲内存档位预算与统一内存调度ulimit 一文讲 launchd 下的进程资源限制——建议两篇配合。
M1 8G 与 M4 8G 建议相同吗?+
M4 压缩与推理更快,但8G 仍是 8G。M4 改善延迟余量,不增加容量。
能把 swap 放到外置 SSD 吗?+
macOS 将 swap 放在内置 APFS 卷上。外置盘不能替代内置 swap——请升级内存或外迁 ULM。

需要无头网关主机?

专用 Mac Mini 可 7×24 运行 OpenClaw 网关,本地机器专注调内存。