Ubuntu Server 24.04.4 LTS 从零部署 Ollama 大模型服务终极指南

概述与目标

本文档完整记录了在一台搭载 AMD Ryzen 7 5700G 集成显卡NVIDIA GeForce RTX 3060 12GB 独立显卡 的服务器上,从零开始安装、配置,并最终成功部署支持 GPU 加速远程访问 的 Ollama 大模型服务的全流程。

核心方法论:PDCA(计划-执行-检查-处理)

文档特点

  • ✅ 生产环境验证通过
  • ✅ 包含实战问题与解决方案
  • ✅ 可完全复现的部署手册

硬件清单与准备

组件 型号/规格 用途说明
CPU AMD Ryzen 7 5700G (8核16线程) 系统运算核心,内含 Radeon Graphics
集成显卡 AMD Radeon Graphics (内置于5700G) 主显示输出,负责操作系统图形界面渲染
独立显卡 NVIDIA GeForce RTX 3060 12GB 专用计算卡,100% 用于 Ollama 大模型推理加速
系统盘 128GB NVMe SSD 安装 Ubuntu 系统、核心软件
数据盘 800GB SATA SSD/HDD 专用于存储 Ollama 大模型文件(路径:/data/.ollama/models),实现系统与数据分离
内存 128GB DDR4 为模型加载和系统运行提供充足缓冲

BIOS 关键设置

在安装操作系统前,需进入服务器主板 BIOS 进行以下设置,以确保硬件以最佳状态运行:

  1. 启动模式:设置为 UEFI(禁用 Legacy/CSM),有利于系统稳定性和未来升级
  2. 安全启动 (Secure Boot):建议暂时禁用,避免安装第三方驱动(如 NVIDIA 驱动)时遇到签名问题
  3. 显存分配:为集成显卡 (AMD) 分配 2GB 显存,确保其有足够资源流畅驱动高分辨率显示器
  4. PCIe 资源分配:确保连接 NVIDIA 独立显卡的 PCIe 插槽运行在 Gen4Auto 模式,以获取最佳总线带宽

操作系统安装 (Ubuntu Server 24.04.4 LTS)

制作安装介质

从官网下载 Ubuntu 24.04.4 LTS Server 镜像,使用 Rufus 等工具制作 U 盘启动盘。

安装过程

从 U 盘启动,选择”安装 Ubuntu Server”。

关键分区步骤(手动分区)

挂载点 位置 大小 文件系统 说明
/ 128GB 系统盘 50GB+ LVM 系统根目录
swap 128GB 系统盘 32GB swap 交换分区,物理内存的 25%-50%
/data 800GB 数据盘 全部 ext4 专门存放 Ollama 模型数据

最后创建用户(例如 jarvis),并设置强密码。


基础系统与双显卡驱动配置

系统更新与基础工具

1
2
sudo apt update && sudo apt upgrade -y
sudo apt install -y net-tools curl wget vim htop lm-sensors

配置 AMD 集成显卡驱动(用于显示)

AMD 集成显卡驱动 (amdgpu) 通常已被内核包含。只需确保加载:

1
2
sudo modprobe amdgpu
echo "amdgpu" | sudo tee -a /etc/modules

安装 NVIDIA 驱动与 CUDA 工具包(用于计算)

目标:为 RTX 3060 安装驱动,但让其接管显示输出。

添加驱动仓库并安装

1
2
3
4
5
6
# 添加 NVIDIA 官方 PPA
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update

# 安装驱动(选择与CUDA 12.x兼容的版本,如550或更高)
sudo apt install -y nvidia-driver-550

验证驱动安装

重启后,运行 nvidia-smi,应能看到 RTX 3060 信息,但”Processes”列表应为空,表示没有显示任务。

安装 CUDA Toolkit

1
2
3
4
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install -y cuda-toolkit-12-5

配置 NVIDIA 仅用于计算(核心步骤)

1
2
3
4
5
6
7
8
# 创建配置文件,禁止 NVIDIA 驱动参与显示合成
sudo tee /etc/modprobe.d/nvidia-compute-only.conf << 'EOF'
options nvidia modeset=0
options nvidia NVreg_EnablePCIeGen3=1
EOF

# 更新 initramfs
sudo update-initramfs -u

验证双显卡状态

  • 将显示器连接至主板的 HDMI/DP 接口(来自 AMD 集成显卡)
  • 重启后,应能正常进入图形界面
  • 在终端运行:
1
2
nvidia-smi                              # 应显示 RTX 3060 空闲
glxinfo | grep "OpenGL renderer" # 应显示 "AMD" 或 "Radeon"

Ollama 服务安装与核心配置

核心原则:手动离线安装支持 GPU 的版本,通过 systemd 管理,并采用 override 方式进行配置(最佳实践)。

获取并安装 Ollama(手动/离线方式)

下载安装包

访问 Ollama 官方 GitHub Releases 页面,下载支持 GPU 的 Linux 版本:

  • 下载页面https://github.com/ollama/ollama/releases
  • 操作说明:在页面中找到最新的稳定版本(如 v0.16.3 或更高),下载名为 ollama-linux-amd64.tar.zst 的文件

上传并安装到服务器

1
2
3
4
5
6
7
# 假设安装包已上传至用户家目录
sudo tar -xaf ~/ollama-linux-amd64.tar.zst -C /usr/local/bin/
sudo chmod 755 /usr/local/bin/ollama

# 创建专用的系统用户和组(如果安装脚本未创建)
sudo groupadd ollama
sudo useradd -r -g ollama -m -d /usr/share/ollama -s /bin/false ollama

创建专业的 Systemd 服务配置(采用 override 最佳实践)

为避免直接修改易出错的主服务文件,并便于未来维护升级,我们采用 systemd 推荐的 override.conf 方式进行配置。这是从初期配置错误中总结出的关键经验。

创建主服务单元文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo tee /etc/systemd/system/ollama.service << 'EOF'
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
Type=exec
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
EOF

创建配置覆盖目录和核心优化文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sudo mkdir -p /etc/systemd/system/ollama.service.d

sudo tee /etc/systemd/system/ollama.service.d/override.conf << 'EOF'
[Service]
# ==== 网络与访问控制 ====
# 允许远程主机连接(Cherry Studio、Open WebUI等必需)
Environment="OLLAMA_HOST=0.0.0.0"

# ==== 存储路径 ====
# 将模型存储在独立的800GB数据盘,路径为 /data/.ollama/models,实现系统与数据分离
Environment="OLLAMA_MODELS=/data/.ollama/models"

# ==== GPU 加速核心优化 ====
Environment="OLLAMA_GPU_LAYERS=100" # 最大化利用GPU进行计算
Environment="OLLAMA_NUM_PARALLEL=4" # 并行请求数,根据CPU核心数调整

# ==== 资源与安全 ====
LimitNOFILE=65536
NoNewPrivileges=true
PrivateTmp=true
# 确保服务进程有权访问数据目录
ReadWritePaths=/data/.ollama
EOF

创建数据目录并授权

1
2
sudo mkdir -p /data/.ollama/models
sudo chown -R ollama:ollama /data/.ollama

启用并启动服务

1
2
sudo systemctl daemon-reload
sudo systemctl enable --now ollama

配置用户环境(镜像加速与参数)

创建用户配置文件,设置国内镜像加速下载:

1
2
3
4
5
6
7
8
9
10
11
mkdir -p ~/.ollama

cat > ~/.ollama/config.json << 'EOF'
{
"registry": {
"mirrors": {
"registry.ollama.ai": "https://mirrors.aliyun.com/ollama"
}
}
}
EOF

模型下载、验证与远程访问配置

下载测试模型

先使用国内镜像加速下载一个小模型进行测试:

1
ollama pull llama3.2:1b

验证 GPU 加速是否生效

这是最关键的验收步骤。

打开终端 A,实时监控 GPU

1
watch -n 0.5 nvidia-smi

打开终端 B,运行模型推理

1
ollama run llama3.2:1b "请用中文写一首关于夏日的五言绝句。"

验证结果

在终端 A 的监控中,在模型生成文本的几秒内,Volatile GPU-Util 应从 0% 显著上升(例如升至 30%-70%),同时 Memory-Usage 会增加。这证明 GPU 加速成功。

配置远程访问(为 Cherry Studio 等客户端)

确认服务监听地址

1
2
sudo ss -tlnp | grep 11434
# 必须显示:0.0.0.0:11434

配置防火墙(如果启用)

1
2
sudo ufw allow 11434/tcp
sudo ufw reload

在客户端(如 Cherry Studio)配置

  • API 地址填写:http://<你的服务器IP>:11434
  • 点击”管理”,应能自动获取服务器上的模型列表(如 llama3.2:1b

最终状态检查清单

部署完成后,运行以下命令进行最终验证:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
echo "=== 1. 服务状态 ==="
sudo systemctl status ollama --no-pager | head -5

echo ""
echo "=== 2. 端口监听 ==="
sudo ss -tlnp | grep 11434

echo ""
echo "=== 3. 生效的环境变量 ==="
sudo systemctl show ollama --property=Environment --no-pager

echo ""
echo "=== 4. 模型列表 ==="
curl -s http://localhost:11434/api/tags| jq .

echo ""
echo "=== 5. 显卡工作模式 ==="
echo "显示设备:"
DISPLAY=:0 glxinfo 2>/dev/null | grep "OpenGL renderer" | head -1
echo -e "\n计算设备:"
nvidia-smi --query-gpu=name,utilization.gpu,memory.used --format=csv

故障排除与经验总结

以下是我们实战中遇到的核心问题与解决方案:

问题 现象 原因 解决方案
GPU 始终 0% 利用率 nvidia-smi 显示 Ollama 进程不占显存,推理慢 systemd 服务配置错误,导致 OLLAMA_GPU_LAYERS 等关键环境变量未生效,服务未能调用 GPU 采用 systemd override 方式重新配置服务,并确保 override.conf 中的 OLLAMA_GPU_LAYERS=100 等变量正确。重启服务 (sudo systemctl restart ollama) 后,通过 sudo systemctl show ollama --property=Environment 验证变量已加载
Cherry Studio 无法连接 客户端连接超时或无法获取模型 1. Ollama 服务监听在 127.0.0.1
2. 防火墙阻止
1. 在 systemd 的 override.conf 中设置 Environment="OLLAMA_HOST=0.0.0.0" 并重启服务
2. 运行 sudo ufw allow 11434/tcp
Service 启动失败 systemctl status 报语法错误,如 [Install] 段包含 Environment 错误地直接编辑了 /etc/systemd/system/ollama.service 文件,并错误放置了指令 采用 systemd override 方式:创建 /etc/systemd/system/ollama.service.d/override.conf 文件来添加配置。这隔离了自定义配置,是官方推荐的最佳实践
大模型加载失败 显存不足 (OOM) 模型超过 12GB 显存容量 1. 使用量化版本模型(如 q4_0
2. 减小 OLLAMA_GPU_LAYERS 值,让部分层在 CPU 运行

后续运维建议

模型管理

使用 ollama pull 下载新模型,会自动存储在 /data/.ollama/models

服务管理

1
2
sudo systemctl stop/start/restart ollama   # 启停服务
sudo journalctl -u ollama -f # 查看实时日志

系统监控

可安装 nvtop 直观监控 GPU 状态。

备份

定期备份 /data/.ollama/models 目录。


附录:关键配置参数说明

环境变量 作用 推荐值
OLLAMA_HOST 服务监听地址 0.0.0.0(允许远程访问)
OLLAMA_MODELS 模型存储路径 /data/.ollama/models(独立数据盘)
OLLAMA_GPU_LAYERS GPU 层数 100(最大化 GPU 加速)
OLLAMA_NUM_PARALLEL 并行请求数 4(根据 CPU 核心数调整)

文档状态:✅ 生产环境验证通过
版本:2.2 (根据实战反馈修订)
最后更新:2026年2月22日
适用系统:Ubuntu Server 24.04.4 LTS
核心硬件配置:AMD CPU with iGPU + NVIDIA dGPU (Compute-Only)
核心部署经验:手动离线安装 + Systemd Override 配置
Ollama 下载页面https://github.com/ollama/ollama/releases


Ubuntu Server 24.04.4 LTS 从零部署 Ollama 大模型服务终极指南
https://www.normdist.com/2026/02/25/Ubuntu-Ollama-Deployment-Guide/
作者
小瑞
发布于
2026年2月25日
许可协议