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 进行以下设置,以确保硬件以最佳状态运行:
- 启动模式:设置为
UEFI(禁用 Legacy/CSM),有利于系统稳定性和未来升级 - 安全启动 (Secure Boot):建议暂时禁用,避免安装第三方驱动(如 NVIDIA 驱动)时遇到签名问题
- 显存分配:为集成显卡 (AMD) 分配 2GB 显存,确保其有足够资源流畅驱动高分辨率显示器
- PCIe 资源分配:确保连接 NVIDIA 独立显卡的 PCIe 插槽运行在 Gen4 或 Auto 模式,以获取最佳总线带宽
操作系统安装 (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 | sudo apt update && sudo apt upgrade -y |
配置 AMD 集成显卡驱动(用于显示)
AMD 集成显卡驱动 (amdgpu) 通常已被内核包含。只需确保加载:
1 | sudo modprobe amdgpu |
安装 NVIDIA 驱动与 CUDA 工具包(用于计算)
目标:为 RTX 3060 安装驱动,但不让其接管显示输出。
添加驱动仓库并安装
1 | # 添加 NVIDIA 官方 PPA |
验证驱动安装
重启后,运行 nvidia-smi,应能看到 RTX 3060 信息,但”Processes”列表应为空,表示没有显示任务。
安装 CUDA Toolkit
1 | wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb |
配置 NVIDIA 仅用于计算(核心步骤)
1 | # 创建配置文件,禁止 NVIDIA 驱动参与显示合成 |
验证双显卡状态
- 将显示器连接至主板的 HDMI/DP 接口(来自 AMD 集成显卡)
- 重启后,应能正常进入图形界面
- 在终端运行:
1 | nvidia-smi # 应显示 RTX 3060 空闲 |
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 | # 假设安装包已上传至用户家目录 |
创建专业的 Systemd 服务配置(采用 override 最佳实践)
为避免直接修改易出错的主服务文件,并便于未来维护升级,我们采用 systemd 推荐的 override.conf 方式进行配置。这是从初期配置错误中总结出的关键经验。
创建主服务单元文件
1 | sudo tee /etc/systemd/system/ollama.service << 'EOF' |
创建配置覆盖目录和核心优化文件
1 | sudo mkdir -p /etc/systemd/system/ollama.service.d |
创建数据目录并授权
1 | sudo mkdir -p /data/.ollama/models |
启用并启动服务
1 | sudo systemctl daemon-reload |
配置用户环境(镜像加速与参数)
创建用户配置文件,设置国内镜像加速下载:
1 | mkdir -p ~/.ollama |
模型下载、验证与远程访问配置
下载测试模型
先使用国内镜像加速下载一个小模型进行测试:
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 | sudo ss -tlnp | grep 11434 |
配置防火墙(如果启用)
1 | sudo ufw allow 11434/tcp |
在客户端(如 Cherry Studio)配置
- API 地址填写:
http://<你的服务器IP>:11434 - 点击”管理”,应能自动获取服务器上的模型列表(如
llama3.2:1b)
最终状态检查清单
部署完成后,运行以下命令进行最终验证:
1 | echo "=== 1. 服务状态 ===" |
故障排除与经验总结
以下是我们实战中遇到的核心问题与解决方案:
| 问题 | 现象 | 原因 | 解决方案 |
|---|---|---|---|
| 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.12. 防火墙阻止 |
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 | sudo systemctl stop/start/restart ollama # 启停服务 |
系统监控
可安装 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