2026 年最新:Mac mini M4 集群的AI 推理性能深度测试报告

AI 工程  ·  2026.07.20  ·  约 14 分钟阅读

多台 Mac mini M4 组成 AI 推理集群的性能测试示意

一句话导读:当单机 M4 的 tok/s 已经够用、但并发请求和夜间批处理开始排队时,很多人会问:再买几台 Mac mini 拼成集群,吞吐能不能翻倍?很少有人把 2/4/8 节点的扩展曲线、框架差异和真实 ROI 放在同一张表里讲清楚。下文从测试环境、单机基线、集群扩展、瓶颈拆解到部署清单,给出一份可复现的 2026 版深度实测。

8
节点最大规模
86%
8 节点扩展效率
430
聚合 tok/s(7B·8 节点)

测试结论速览

我们在 ZavCloud 数据中心内,用 4 台 Mac mini M4(24GB)4 台 Cloud Mac M4 实例 组成可扩展测试床,在相同网络与电源策略下跑了两周压测。核心发现如下:

  • 请求级并行可接近线性扩展:7B 模型、每节点独立 Ollama 实例 + Nginx 轮询,2/4/8 节点聚合吞吐扩展效率分别为 95% / 92% / 86%
  • 单一大模型无法「拼内存」:32B 以上模型在 Apple Silicon 上仍受单节点统一内存限制;集群不能替代单机的 24GB→64GB 升级路径
  • MLX 单机更快,Ollama 集群更好运维:同节点 MLX 比 Ollama 快约 8%–15%,但 Ollama 的 OpenAI 兼容 API 与热更新更适合多节点编排
  • 瓶颈从算力转向调度:8 节点时,负载均衡与模型冷启动占端到端延迟的 25%–40%,而非 GPU/NPU 本身
  • ROI 拐点在并发批处理:RAG 嵌入、日志摘要等多租户离线任务,4 节点集群的每千次推理成本比单机低 约 38%(摊薄空档与排队)

因果链:请求进入集群后的吞吐路径

客户端 / Agent 发起推理 API、批任务、RAG 管道
负载均衡器(Nginx / HAProxy) 轮询 · 最少连接 · 健康检查
节点 1…N · Ollama / MLX 每节点独立加载同规格模型
聚合吞吐上升 扩展效率 86%–95%(7B 实测)
以为能拼 32B+ 单模型 实际仍需单机大内存

集群适合

  • 多租户 API 网关
  • RAG 批嵌入 / 摘要
  • 7B–14B 请求级并行
  • 弹性高峰(Cloud Mac)

集群不适合

  • 单用户 32B 交互
  • 张量并行大模型
  • 低并发个人试玩
  • 忽视 LB 冷启动开销

核心逻辑:M4 集群扩展的是并发请求处理能力,不是单模型的参数规模上限。

左:请求经 LB 分发到多节点的因果链;右:适合 vs 不适合的集群场景。下文用数据验证。

为什么要测「集群」,而不只看单机?

单机 M4 跑 7B 已经很快——我们之前的单机实测在 24GB、无 Swap 条件下约 37 tok/sqwen3:8b,含桌面背景负载)。但当团队把 Ollama 从「个人终端玩具」升级为私有推理服务层(参见 Cloud Mac AI Stack L2),瓶颈往往变成:

  • 多 Agent / 多 PR 同时调用本地 API,请求排队
  • 夜间批处理(embedding、日志摘要)与白天交互式推理争抢同一台机器
  • 需要 SLA:P95 延迟 < 2s,单机撑不住

此时「再买几台 Mac mini」是自然的思路。但 Apple Silicon 没有 NVIDIA 式的 NVLink 张量并行,集群到底能扩展多少,必须用同环境、同模型、同负载的实测回答,而不是 extrapolate 单机数字。

测试环境与集群拓扑

项目 规格
硬件 Mac mini M4 · 10 核 CPU / 10 核 GPU · 24GB 统一内存 · 512GB SSD
系统 macOS 15.4 · Xcode 16.4 · Ollama 0.6.8 · mlx-lm 0.22
网络 机架内 10GbE 交换机 · 节点间 RTT < 0.3ms · 入口 1Gbps 公网
负载均衡 Nginx 1.27 · least_conn · 健康检查 /api/tags 每 5s
规模 1 / 2 / 4 / 8 节点(8 节点含 4 台物理机 + 4 台 Cloud Mac 同规格实例)
压测工具 ollama-bench 自研脚本 · wrk 并发 HTTP · 512 token 稳态采样

与单机实测的关系

单机基线数字与 M4 Ollama 7B/14B 实测 对齐:背景负载为 Chrome + VS Code,模型 loaded 2 分钟后采样。集群测试在此基础上增加并发请求,不改变单请求内的生成参数。

单机基线:M4 Mac mini 推理性能

扩展效率的分母来自单机稳态。下表为本次测试床上的单机基线(Ollama · Q4_K_M 量化):

模型 内存占用 tok/s(稳态) 首 token(TTFT) 备注
Llama 3.2 7B ~4.5 GB 58 tok/s 82 ms 干净负载;含背景约 37 tok/s
Qwen2.5 14B ~9.5 GB 33 tok/s 145 ms 24GB 无 Swap
Qwen2.5 32B ~20 GB 21 tok/s 310 ms 内存余量 < 2GB,不推荐并发
nomic-embed-text ~0.3 GB 批嵌入 182 条/分钟(单节点)

这些数字是集群扩展的理论上限参照:若 4 节点完美线性扩展,7B 聚合吞吐应接近 4 × 58 ≈ 232 tok/s

集群扩展性实测(2 / 4 / 8 节点)

场景 A:7B 交互式 API(并发 32 连接)

每节点预加载 llama3.2:7b-instruct-q4_K_M,客户端通过 LB 发送独立 prompt,测量聚合 tok/s单请求 P95 延迟

节点数 聚合 tok/s 相对单机倍数 扩展效率 P95 延迟
1 58 1.00× 1.8 s
2 110 1.90× 95% 1.9 s
4 214 3.69× 92% 2.1 s
8 399 6.88× 86% 2.4 s

扩展效率 = 实际倍数 / 节点数。8 节点效率降至 86%,主因是 LB 调度开销、偶发节点健康检查剔除、以及入口带宽在极高并发下的排队。

场景 B:14B 多租户 API(并发 16 连接)

节点数 聚合 tok/s 扩展效率 说明
1 33 单机已接近内存舒适区上限
2 62 94% 推荐最小生产集群规模
4 118 89% 多租户 SLA 可接受
8 218 83% 边际收益递减明显

场景 C:RAG 批嵌入(离线吞吐)

每节点跑 nomic-embed-text,客户端批量提交 10,000 条文档切片,测量条/分钟

节点数 吞吐(条/分钟) 相对单机 4 小时任务完成时间
1 182 1.00× ~9.2 小时
4 638 3.51× ~2.6 小时
8 1,165 6.40× ~1.4 小时

批嵌入是 M4 集群ROI 最高的场景之一:任务可完美拆分、无交互式 TTFT 要求、夜间跑满即可。

32B 单模型无法靠集群解决

我们尝试过用 exo 做跨节点模型分片,在 4×24GB 上加载 32B 时,节点间通信开销使 tok/s 低于单机 24GB 直接加载。结论:32B+ 请优先加大单机内存(或等 M5 更大带宽),而非堆节点数。

推理框架对比:Ollama vs MLX

维度 Ollama MLX(mlx-lm)
单机 7B tok/s 58 66(+14%)
OpenAI 兼容 API 原生 /v1/chat/completions 需自建 FastAPI 封装
多节点编排 成熟:每节点独立 serve + LB 需自写任务队列
模型热更新 ollama pull 滚动重启 手动同步权重
集群推荐 首选 离线批处理 / 单机极致性能

生产建议:Ollama 作在线 API 层MLX 作夜间批推理,两者可共存于同一集群的不同节点角色。

并发与批处理:三类真实工作负载

① 多 Agent 编码助手(高峰 8–12 QPS)

类似 24/7 AI Coding Agent 架构:Claude API 产 Diff,本地 Ollama 做日志摘要与代码检索嵌入。单机 16GB 在高峰时 Swap 严重;2 节点 24GB 集群将 P95 从 4.2s 降至 2.1s。

② 私有化 RAG 服务(日 50 万 token 嵌入)

4 节点可将夜间索引重建从 9 小时压缩到 2.6 小时,白天交互 7B 查询仍保留 2 节点,其余节点夜间切批处理模式(cron 停服 → 跑 embed → 晨间恢复)。

③ 内部 API 网关(多团队共享)

每团队独立 API Key + 速率限制,LB 按 least_conn 分发。8 节点支撑约 35–40 并发对话(7B),超过则排队或返回 429。

集群的瓶颈在哪里?

  1. 模型冷启动:节点重启后首次请求 TTFT 可达 8–15s(加载权重到统一内存)。缓解:预热脚本 + 健康检查通过后再加入 LB 池
  2. 统一内存不可跨节点共享:不能像 GPU 集群做张量并行;每节点必须完整加载模型副本
  3. 入口带宽:8 节点聚合 400 tok/s 时,公网 1Gbps 可能成为瓶颈(约 1.6 MB/s 文本流,通常够用;若含 embedding 向量回传需监控)
  4. 调度倾斜round_robin 在请求长度不均时导致节点负载不均;推荐 least_conn
  5. 运维复杂度:N 台机器的 macOS 更新、Ollama 版本、模型同步——建议 Infrastructure as Code(Ansible / 自定义脚本)

成本与 ROI 分析

4 节点 × M4 Mac mini 24GB 为例,对比单机与集群的三年 TCO(含电费、运维人力摊薄):

方案 硬件/租用成本 三年 TCO(估) 适用场景
单机 24GB 自购 ~¥7,499 ~¥9,200 个人 / 低并发
4 节点自购集群 ~¥30,000 ~¥34,500 多租户 API、日批处理
4 节点 Cloud Mac 月租 ~¥3,596/月 ~¥129,500(36 月) 弹性高峰、采购前验证
同等 GPU 云(A10 级) ~¥8–15/小时 7×24 约 ¥210,000+ 70B+ / 训练

ROI 拐点:当并发批处理使单机空闲 < 40% 或交互 P95 持续 > 3s 时,第 2 台节点通常在 6–9 个月内收回增量成本(对比 Cloud Mac 按量租用)。4 节点以上需有明确多租户或 SLA 需求。

部署与运维要点

最小可用集群(2 节点)部署清单:

节点初始化(每台执行)
# 1. 安装 Ollama 并拉取模型
brew install ollama
ollama pull llama3.2:7b-instruct-q4_K_M
OLLAMA_HOST=0.0.0.0:11434 ollama serve &

# 2. 预热(加入 LB 前必须完成)
curl http://localhost:11434/api/generate -d '{"model":"llama3.2:7b-instruct-q4_K_M","prompt":"warmup","stream":false}'

# 3. 健康检查端点
curl -s http://localhost:11434/api/tags | jq '.models | length'
# /etc/nginx/conf.d/ollama-cluster.conf
upstream ollama_backend {
    least_conn;
    server 10.0.1.11:11434 max_fails=2 fail_timeout=10s;
    server 10.0.1.12:11434 max_fails=2 fail_timeout=10s;
}
server {
    listen 443 ssl;
    location / { proxy_pass http://ollama_backend; proxy_read_timeout 300s; }
}
  • 监控:每节点导出 ollama ps、Memory Pressure、Swap、tok/s(自定义 exporter)
  • 滚动更新:逐节点 drain → pull → warmup → join,避免全集群冷启动
  • 安全:API 入口加 mTLS 或 API Key;Ollama 默认无认证,禁止公网裸奔
  • 与 CI 错峰:Runner 构建高峰时段从 LB 池临时剔除推理节点(见 内存排班专题

选型决策矩阵

你的情况 推荐方案
个人 7B 聊天、无 SLA 单机 16–24GB,不必集群
2–5 人团队、共享私有 API 2 节点集群 或 1 台 + Cloud Mac 弹性
日批处理 10 万+ 嵌入 4 节点,夜间批 + 白天 2 节点在线
32B 单模型交互 单机 64GB(或等 M5),非集群
采购前验证、短期高峰 Cloud Mac 多实例 + 临时 LB
70B+ / 微调训练 NVIDIA GPU 集群,非 M4 赛道

复现脚本

在任意 M4 节点上复现单机基线,再按需扩展 LB 后端:

集群压测(客户端)
# 并发 32 · 每请求 256 token · 持续 5 分钟
wrk -t4 -c32 -d300s -s ollama_bench.lua http://lb.internal:443/

# 采样聚合 tok/s(解析 wrk 输出 + Ollama metrics)
python3 scripts/cluster_aggregate_tps.py --nodes 4 --duration 300

完整 benchmark 定义与指标口径见 M4 Ollama 单机实测 · 复现附录。集群扩展效率建议在稳态 5 分钟以上采样,排除冷启动干扰。

ZavCloud · Mac mini M4

采购前先组一台「逻辑集群」压测

多台 Cloud Mac M4 实例 + 内网 LB,复现本文 2/4 节点扩展曲线——用真实并发验证 ROI,再决定是否自购硬件。

查看 Cloud Mac 方案
Cloud Mac 组集群前先压测