NAS 部署 Ollama 性能够不够:CPU、内存和显卡怎么判断

NAS 部署 Ollama 够不够用,取决于 CPU、内存、可用 GPU 和目标模型,而不是硬盘容量。本文给出 CPU-only、8GB/16GB 内存、NVIDIA 显卡与 Docker 部署的实际判断和测试方法。

NAS 能部署 Ollama,但“能安装”和“用起来够快”是两回事。

如果目标是偶尔做摘要、文件问答、家庭自动化和低频 API 调用,x86 NAS 用 CPU 跑小模型可以成立;如果希望像聊天软件一样连续对话、跑 7B/8B 代码模型,或者让多个服务调用,关键就变成显存、内存和散热,而不是硬盘有多少 TB。

先给结论:

没有可用 GPU 的 NAS,适合小模型和低频任务;有被 Ollama 正确识别的 NVIDIA GPU,才更适合把 7B/8B 模型作为日常服务。

先确认你的 NAS 属于哪一类

不要只看产品宣传页上的“AI 芯片”“NPU”或“4K 转码”。Ollama 是否能加速,取决于系统、驱动、容器权限和硬件是否在实际运行环境中被识别。

NAS 状态 适合程度 更现实的用途
ARM CPU、8GB 内存、无可用 GPU 有限 极小模型、简单分类、离线任务
x86 CPU、8GB 内存、无可用 GPU 勉强可用 1B–3B 量化模型、低频文本处理
x86 CPU、16GB–32GB 内存、无可用 GPU 可测试 3B–7B 低量化模型,但响应速度通常较慢
x86 NAS + 8GB NVIDIA 显存 日常可用 7B/8B 量化聊天、轻量代码辅助、单用户 API
x86 NAS + 12GB 以上 NVIDIA 显存 更合适 8B 模型较舒适,部分 14B 量化模型可按上下文取舍

表格是部署判断起点,不是性能承诺。CPU 型号、内存通道、模型格式、上下文长度、并发数、NAS 系统限制和散热都会改变实际结果。

先把“存储”和“推理”分开看

NAS 的大硬盘主要解决模型文件存放问题:你可以保存很多 GGUF、Ollama 模型层和文档库。推理速度主要由下面几项决定:

  • CPU 的核心性能与内存带宽;
  • 系统内存是否足够装下模型和运行时;
  • GPU 是否可用,以及显存是否装得下模型与上下文;
  • PCIe 通道、驱动和容器是否正确透传;
  • 上下文长度、模型量化、并发和输出长度。

所以“NAS 有 40TB 硬盘,能不能跑 32B 模型”的答案通常是:文件当然能放,但未必能以可接受的速度推理。

CPU-only NAS:什么时候值得部署

没有 GPU 也可以运行 Ollama。官方 Docker 镜像支持纯 CPU 启动:

1
2
3
4
5
docker run -d \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  --name ollama \
  ollama/ollama

CPU-only 适合:

  • 夜间批量摘要、文档分类、标签提取;
  • 家庭自动化中的低频文本任务;
  • 验证 API 调用、RAG 管道和权限逻辑;
  • 对首 token 延迟和生成速度不敏感的个人工具。

不太适合:

  • 多人聊天服务;
  • 长时间代码 Agent;
  • 大模型连续生成;
  • 实时语音助手或高频网页问答。

CPU-only 的正确策略是先用小模型,短上下文,限制并发。不要先下载最大的模型再期待“靠 NAS 慢慢算”能获得接近云端的体验。

内存至少要留多少

系统内存不只给模型权重使用,还要留给 NAS 本身、文件缓存、Docker、下载任务、照片索引、容器和 KV Cache。

一个实用原则:不要让 Ollama 把 NAS 内存吃到开始大量 swap。 一旦 swap 频繁介入,响应时间会明显恶化,也会影响文件共享和其他服务。

内存 建议
8GB 只建议小模型与轻量测试;NAS 还跑多个服务时要更保守
16GB 可作为 CPU-only 本地助手的起点,优先小模型或低量化版本
32GB 更适合 7B 级低量化模型、RAG 和多个轻量容器并存
64GB+ 有利于更大模型的 CPU/混合卸载与长文档,但不等于生成速度足够快

模型文件大小只是下限。模型加载、上下文与运行时会继续占用内存,因此不要按“文件 8GB、机器 8GB”来判断可否运行。

有 NVIDIA GPU 时,体验差异最大

若 NAS 是 x86 Linux,且有支持的 NVIDIA 显卡,Ollama 可使用 GPU 加速。Ollama 官方列出 NVIDIA compute capability 5.0+、驱动 531+ 的支持范围,其中 RTX 30 系列也在支持列表内。

Docker 方案需要主机先配置 NVIDIA Container Toolkit,随后再用 GPU 参数启动容器:

1
2
3
4
5
6
docker run -d \
  --gpus=all \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  --name ollama \
  ollama/ollama

容器启动后,先验证 GPU 透传本身,而不是直接下载大模型:

1
docker run --gpus all ubuntu nvidia-smi

这条命令不能正常显示显卡时,Ollama 容器也无法使用 GPU。此时应先检查驱动、Container Toolkit、Docker runtime 和 NAS 系统是否支持 PCIe GPU 透传。

NAS 的核显、NPU 和转码能力能直接用吗

不能默认这么认为。

很多 NAS 的核显主要用于视频解码、转码或图形输出;一些设备宣传的 NPU 也可能只开放给厂商自带应用。它们是否能被 Ollama 使用,取决于 Ollama 支持的后端、操作系统、驱动和设备权限。

部署前应看实际证据:

  • 宿主机能否看到 GPU 设备;
  • 容器内能否运行 nvidia-smi 或对应厂商检测工具;
  • Ollama 日志是否明确显示使用 GPU;
  • 相同 prompt 下,GPU 与 CPU 的速度差是否合理。

看不到这些证据时,就按 CPU-only 预期规划,不要因为设备有“转码引擎”就按独显性能采购模型。

模型怎么选才不会把 NAS拖垮

NAS 部署的核心不是追求最大的模型,而是先让常用任务稳定完成。

场景 模型选择思路
家庭文档摘要、分类、简单问答 先试 1B–4B 模型
中文聊天、轻量脚本、单用户 API 有 8GB 显存时可试 7B/8B 量化模型
长代码、复杂 Agent 优先更大显存主机或云端,不建议只靠普通 NAS CPU
Embedding/RAG Embedding 模型通常更轻,适合放 NAS;生成模型按需调用
多人同时调用 先做队列和并发限制,不要让所有请求直接并行加载大模型

模型一旦太大,NAS 常见的表现不是立刻失败,而是加载很久、首 token 很慢、生成速度低、系统内存持续攀升,最后影响文件服务和容器稳定性。

建议的部署结构

对大多数家庭或小团队,推荐把 NAS 当作“数据与轻推理节点”:

1
2
3
4
5
6
7
8
NAS
├─ Ollama:小模型、Embedding、低频 API
├─ 文档与向量库:私有文件、备份、RAG 数据
├─ 反向代理:局域网访问控制
└─ 监控:CPU、内存、GPU、容器日志

高显存主机或云端
└─ 大模型、长上下文、复杂 Agent、高并发推理

这种分工比强行把所有推理都塞进 NAS 更稳定:敏感文件仍留在本地,重任务再路由到更合适的设备。

部署前的五分钟测试

不要先下载几十 GB 模型。先按这个流程判断:

  1. 确认 NAS 架构、Docker 支持和剩余内存。
  2. 启动 Ollama 容器,确认 http://NAS地址:11434 可访问。
  3. 拉一个小模型,连续问 5 到 10 个固定问题。
  4. 观察 CPU、内存、swap、磁盘 IO 和 GPU 占用。
  5. 再换到接近真实需求的模型,逐步增加上下文和并发。

可以用下面命令查看容器资源:

1
docker stats ollama

如果有 NVIDIA GPU,再同时观察:

1
nvidia-smi

只要模型运行时让文件共享、照片服务或备份任务明显变慢,就说明当前模型或并发对 NAS 不合适,应降低模型规模或把推理迁到其他机器。

网络和安全不要忽略

Ollama 默认本地服务端口是 11434。如果要让局域网其他设备调用,先在 NAS 防火墙或反向代理层做访问控制,不要直接把无鉴权的推理端口暴露到公网。

尤其当 NAS 里有家庭照片、备份、文档和私有文件时,模型服务、文件服务和管理后台应使用不同权限边界。能在局域网完成的调用,就不需要开放公网端口。

总结

NAS 部署 Ollama 是否够用,可以按下面方式判断:

1
2
3
4
5
6
7
8
只做摘要、分类、Embedding
-> CPU-only NAS 可以尝试

想要 7B/8B 模型的日常交互体验
-> 需要可用 GPU,优先看显存

想做长上下文、复杂 Agent 或多人并发
-> 更适合高显存主机或云端推理

先用小模型验证资源和稳定性,再决定是否加显卡、扩内存或拆分推理节点。NAS 很适合承载私有数据和轻量模型服务,但它不是天然的大模型服务器。

参考:

记录并分享
使用 Hugo 构建
主题 StackJimmy 设计