soarli

Linux 下部署 Ollama:从安装、高并发配置到显卡实时监控全指南
前言在 Linux 服务器上部署本地大模型,Ollama 凭借其极致的易用性成为了首选方案。但在生产环境或多人共享...
扫描右侧二维码阅读全文
29
2026/01

Linux 下部署 Ollama:从安装、高并发配置到显卡实时监控全指南

前言

在 Linux 服务器上部署本地大模型,Ollama 凭借其极致的易用性成为了首选方案。但在生产环境或多人共享环境下,默认配置往往不够用:并发数仅为 1,模型加载超时时间较短。

本文将记录一套完整的部署流程:如何安装 Ollama,如何通过 Systemd 优雅地配置高并发 (Parallel)保活策略 (Keep-Alive),以及如何使用 gpustat 像黑客一样实时监控显卡状态。


第一步:极速安装 Ollama

对于 Linux 系统(Ubuntu/Debian/CentOS),官方提供了一键安装脚本,自动配置 Systemd 服务及用户权限。

curl -fsSL https://ollama.com/install.sh | sh

安装完成后,服务会自动启动。你可以先拉取一个模型测试一下:

ollama pull qwen2.5:7b

第二步:核心配置(支持高并发与长超时)

这是最关键的一步。默认情况下,Ollama 同时只能处理一个请求。我们需要修改 Systemd 服务配置。

目标配置:

  • 并发数 (NUM_PARALLEL):设为 5,支持 5 人同时对话。
  • 模型保活 (KEEP_ALIVE):设为 30s,闲置 30 秒后自动释放显存(适合显存紧张的服务器)。
  • 加载超时 (LOAD_TIMEOUT):设为 10m,防止模型太大或硬盘读取慢导致加载失败。

推荐方法:使用 systemctl override(防覆盖)

不要直接修改 /lib/systemd/system/ollama.service,因为软件更新时会被覆盖。我们使用 drop-in 方式覆盖配置。

为了避免使用 nano/vim 编辑器时的格式困扰,建议直接使用以下命令一键写入配置

# 1. 创建配置目录
sudo mkdir -p /etc/systemd/system/ollama.service.d

# 2. 写入配置文件(直接复制整段运行)
echo '[Service]
Environment="OLLAMA_NUM_PARALLEL=5"
Environment="OLLAMA_KEEP_ALIVE=30s"
Environment="OLLAMA_LOAD_TIMEOUT=10m"' | sudo tee /etc/systemd/system/ollama.service.d/override.conf

或在### Edits below... 这行字的上面插入并保存:

sudo systemctl edit ollama.service

最终效果应该是这样的:

### Anything between here and the comment below will become the contents of the drop-in file

[Service]
Environment="OLLAMA_NUM_PARALLEL=5"
Environment="OLLAMA_KEEP_ALIVE=30s"
Environment="OLLAMA_LOAD_TIMEOUT=10m"

### Edits below this comment will be discarded
# ... (下面原来的内容不用管)

应用配置

配置写入后,必须重启服务才能生效:

# 重载守护进程配置
sudo systemctl daemon-reload

# 重启 Ollama 服务
sudo systemctl restart ollama

验证配置是否生效

运行以下命令,检查环境变量是否已经注入进程:

systemctl show ollama.service | grep Environment

如果输出中包含你刚才设置的参数,说明配置成功。


第三步:显卡实时监控 (gpustat)

使用默认的 nvidia-smi -l 虽然能看,但不够直观。推荐使用 gpustat,它界面更美观,且能清晰展示显存占用比例和具体进程。

1. 安装 gpustat

需要 Python 环境(通常 Linux 自带):

pip install gpustat
# 或者如果是 Ubuntu/Debian 系统级安装
sudo apt install gpustat

2. 启动实时监控

使用 -i 参数开启 watch 模式(默认 1 秒刷新一次):

gpustat -i

或者通过 -cp 参数显示具体的进程名和 PID:

gpustat -cp -i 1

界面解读:

  • [0] NVIDIA A100... : 显卡型号。
  • 78°C : 温度。
  • 12345/80000 MB : 显存使用情况。
  • ollama-runner (5000M) : 能够清晰看到 Ollama 占用了多少显存。

第四步:避坑与性能提示

1. 并发与显存的关系

设置 OLLAMA_NUM_PARALLEL=5 并不意味着模型大小乘以 5。

  • 模型权重只加载一份。
  • KV Cache(上下文缓存) 会随并发数增加。
  • 风险提示:如果你的显存很极限(比如 24G 显存跑 70B 模型),开启高并发可能会导致 Out Of Memory (OOM),此时 Ollama 会被迫使用 CPU,速度骤降。请结合 gpustat 观察显存余量。

2. Systemd 编辑器的坑

如果你习惯手动编辑 (sudo systemctl edit ollama.service),请务必注意:

  • Nano 编辑器中:内容必须写在 ### Anything between here...### Edits below... 这两行注释中间
  • 写在 # 注释行里是无效的,写在下方会被丢弃。

3. 超时设置

如果在 WebUI 中经常遇到 "Timeout" 错误,除了设置服务器端的 OLLAMA_LOAD_TIMEOUT,还需要检查你的客户端(如 Nginx、Open WebUI)的 Request Timeout 设置,通常默认为 60秒,建议全部同步调整为 600秒以上。


总结

通过以上步骤,你已经拥有了一个生产力级别的 Ollama 服务端:

  1. 更强:支持 5 路并发。
  2. 更稳:拥有充足的加载超时宽限。
  3. 更省:30秒无操作自动释放显存。
  4. 透明:通过 gpustat 掌握硬件底牌。
最后修改:2026 年 01 月 29 日 09 : 30 PM

发表评论