AMD AI MAX+ 395使用乌班图搭建AI大模型
Strix Halo 本地 AI 服务器
搭建与运维手册
AMD AI MAX+ 395 · Radeon 8060S · 96GB 统一显存 · 全离线推理
服务器 192.168.5.18Ubuntu 24.04 ServerROCm 7.2Ollama 0.40.7搭建日期 2026-10-22
目录
系统概览
基础环境安装
Ollama 服务配置
模型清单与参数
系统级性能调优
服务器化精简(去桌面)
Open WebUI 管理端
心跳代理(解决客户端超时)
客户端接入指南
性能实测数据
踩坑记录与经验
日常运维命令
01 系统概览
▍硬件
| 项目 | 配置 |
|---|---|
| APU | AMD AI MAX+ 395(Strix Halo),16 核 Zen5 |
| GPU | Radeon 8060S 核显(gfx1151),BIOS 划分 96GB 统一显存 |
| 内存 | 128GB DDR5(96GB 给 iGPU,系统可见约 30GB) |
| 网络 | 有线局域网,静态 IP 192.168.5.18 |
▍软件栈
| 层 | 组件 | 版本 |
|---|---|---|
| OS | Ubuntu Server(无桌面) | 24.04.4,内核 7.0.0 |
| GPU 驱动 | ROCm | 7.2 |
| 推理引擎 | Ollama(systemd 常驻) | 0.40.7 |
| Web 管理端 | Open WebUI(Docker) | 0.12.3,端口 3000 |
| 心跳代理 | 自研 aiohttp 反代(systemd) | 端口 11435 |
▍网络端口
192.168.5.18 ├─ 22 SSH (仅局域网) ├─ 3000 Open WebUI (仅 192.168.0.0/16) ├─ 11434 Ollama 原生 API (仅 192.168.0.0/16) └─ 11435 Ollama 心跳代理 (仅 192.168.0.0/16,供 Trae 等严格客户端)
02 基础环境安装
# Ollama 官方脚本(自动识别 ROCm / gfx1151) curl -fsSL https://ollama.com/install.sh | sh # 验证 GPU 识别(应显示 gfx1151,显存 96GB) ollama serve & ollama ps rocm-smi
Ollama 0.40.7 + ROCm 7.2 对 gfx1151 已是官方一等支持,无需手动改 HSA_OVERRIDE_GFX_VERSION。
03 Ollama 服务配置
配置文件:/etc/systemd/system/ollama.service.d/override.conf
[Service] Environment="OLLAMA_HOST=0.0.0.0" # 局域网监听 Environment="OLLAMA_KEEP_ALIVE=-1" # 模型永不自动卸载(常驻显存) Environment="OLLAMA_MAX_LOADED_MODELS=2" # 允许 mini + 一个大模型共存 Environment="OLLAMA_NUM_PARALLEL=1" # 单请求独占,避免 KV 复制爆显存 Environment="OLLAMA_FLASH_ATTENTION=1" # Flash Attention
sudo systemctl daemon-reload sudo systemctl restart ollama
▍显存策略(96GB 预算)
日常:
mini(4GB) +qwen3-coder:30b(31GB) ≈ 35GB,常驻啃硬骨头:调用
gpt-oss:120b(60GB) 时,coder 自动换出(约 15 秒加载),用完自动换回口诀:一小一大常驻,两大按需互换
保持 f16 全精度(显存富余,无需 q8_0 量化)。
04 模型清单与参数
| 模型名 | 用途 | 上下文 | 显存 | 速度 |
|---|---|---|---|---|
qwen3-coder:30b | 编程主力 | 128K | ~31GB | 生成 ~72 tok/s |
gpt-oss:120b | 最强推理(带思维链) | 128K | ~60GB | ~35 tok/s |
mini | 文本处理/抽取/摘要 | 32K | ~3.9GB | 生成 ~61 tok/s,预填充 ~1066 tok/s |
qwen3.5:4b | mini 的基础版(可删) | — | — | — |
▍4.1 qwen3-coder 上下文调到 128K
ollama rm qwen3-coder:30b # 用原始 safetensors 重新 create,Modelfile 里加: # PARAMETER num_ctx 131072
128K 下 f16 KV cache 约 11GB,模型+KV 共 31GB。
▍4.2 mini 定制(直出结果,无思考开销)
# Modelfile FROM qwen3.5:4b PARAMETER num_ctx 32768 SYSTEM """你是文本处理工具。直接输出结果,不解释、不思考、不输出多余内容。""" ollama create mini -f Modelfile
▍4.3 gpt-oss 思考档位
请求里可传 reasoning_effort:low(简单任务秒回)/ medium(默认)/ high(难题)。
05 系统级性能调优
配置文件:/etc/systemd/system/llm-perf.service(开机自动应用)
| 调优项 | 值 | 作用 |
|---|---|---|
| CPU governor | performance | tokenizer/调度不拖后腿,CPU 可上 5.1GHz |
| vm.swappiness | 10 | 杜绝大模型加载/长会话换页卡顿 |
| 透明大页 | always | 11GB 级 KV cache 分配更高效 |
实测预填充瓶颈纯在 iGPU 算力(调优前后 862 vs 875 tok/s 持平),CPU 侧调优的价值在于长会话稳定性。
BIOS 里把 APU 功耗墙(PPT/SPPT)从默认提到 100-120W,可持续推理速度直接提升,代价是风扇更吵。
06 服务器化精简(去桌面)
# 关闭图形界面(开机进命令行) sudo systemctl set-default multi-user.target sudo systemctl disable --now gdm3 # 禁用无用服务 sudo systemctl disable --now cups cups-browsed cups.socket cups.path sudo systemctl disable --now bluetooth avahi-daemon ModemManager wpa_supplicant # 日志压缩 sudo bash -c 'mkdir -p /etc/systemd/journald.conf.d && \ printf "[Journal]\nSystemMaxUse=200M\n" > /etc/systemd/journald.conf.d/size.conf' sudo systemctl restart systemd-journald
保留:SSH、NetworkManager(有线)、Docker、Ollama、llm-perf
接显示器也不会进桌面;临时要图形:
sudo systemctl start gdm3桌面软件包未卸载(磁盘仅用 13%,卸载有依赖断裂风险,收益为零)
07 Open WebUI 管理端
▍7.1 部署
sudo apt-get install -y docker.io && sudo systemctl enable --now docker sudo docker run -d --name open-webui --restart always \ --add-host=host.docker.internal:host-gateway \ -p 3000:8080 \ -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \ -v open-webui:/app/backend/data \ ghcr.io/open-webui/open-webui:main # 防火墙:容器网桥必须能访问宿主机 Ollama(否则模型列表为空!) sudo ufw allow from 192.168.0.0/16 to any port 3000 proto tcp sudo ufw allow from 172.16.0.0/12 to any port 11434 proto tcp
访问:http://192.168.5.18:3000,注册的第一个账号自动成为管理员。
▍7.2 核心功能对照
| 需求 | 用法 |
|---|---|
| 管理模型 | 管理员面板 → 设置 → 模型:网页拉取/删除模型、编辑预设 |
| 模型对比 | 新建对话 → 顶部 “+” 添加第二个模型 → 并排回答 |
| 盲测评分 | 管理员面板 → 评测 → Arena:匿名 A/B 投票,自动 Elo 排行 |
“工作空间 → 模型” 页面为空是正常的(那是放自定义预设的地方);基础模型在聊天窗口顶部下拉框选。管理员面板 → 外部连接里无效的 OpenAI API 配置可删(服务器无外网)。
08 心跳代理(解决客户端超时)
▍8.1 背景与原理
Trae 内置 Chat 有两道看门狗:
90 秒套接字静默超时 —— 大上下文预填充期间(本地 iGPU 预填充仅 ~875 tok/s,11 万 tokens 需 2-3 分钟)连接全程无字节,被客户端掐断
60 秒 SSE 数据帧超时 —— 即使有字节流,60 秒内见不到真正的
data:帧照样报错
解决方案:透明反代(端口 11435 → 11434),收到请求立即向客户端回响应头 + 首帧,之后每 10 秒注入一帧,与上游等待并行:
流式请求:注入 OpenAI 标准格式的空内容 delta 帧(
{"delta":{"content":""}})——任何客户端解析后都是零操作。注释帧(: keepalive)只能骗过第一道看门狗,骗不过第二道非流式请求:注入合法 JSON 空白符(
\n)其余路径(/v1/models 等)透明转发
这与 OpenAI 官方 API、Cloudflare AI Gateway、LiteLLM 的 keepalive 机制同源。
▍8.2 部署清单
| 项 | 值 |
|---|---|
| 脚本 | /usr/local/bin/ollama-ka-proxy.py(aiohttp,apt install python3-aiohttp) |
| 服务 | ollama-ka-proxy.service(开机自启 + 崩溃 3s 重启) |
| 端口 | 0.0.0.0:11435,ufw 仅放行 192.168.0.0/16 |
| 覆盖路径 | /v1/chat/completions(心跳),其余透传 |
▍8.3 实测效果(3.8 万 tokens,44 秒预填充)
| 指标 | 直连 11434 | 经代理 11435 |
|---|---|---|
| 首字节 | 44.2s(全程静默) | 0.0014s |
| 预填充期间 | 死寂 | 每 10s 一个合法数据帧 ×5 |
| 完整性 | — | ✅ 数据完整、非流式 JSON 合法 |
09 客户端接入指南
▍9.1 Trae 内置 Chat(问答/对话用)
模型类型:OpenAI 兼容
API 地址:
http://192.168.5.18:11435/v1(走心跳代理端口)模型名:
qwen3-coder:30b/gpt-oss:120b/mini,API Key 随便填限制:Chat 模式下自定义模型没有工具(不能读写文件),只能对话;这也是“模型让你复制粘贴代码”的原因
▍9.2 Roo Code(Trae 内插件,真正的智能体)
已安装 v3.54.0(VSIX 来自 GitHub Releases;open-vsx 被限速时直接用 GitHub)。
Provider: Ollama Base URL: http://192.168.5.18:11434 (直连,Roo 自带 600s 超时) Model: qwen3-coder:30b Request Timeout: 600s(可调至 3600s) 模式: Code(代码模式才会动文件,Ask 是纯聊天)
可执行:读写文件、跑编译、按报错自迭代。深度任务可切 gpt-oss:120b。
▍9.3 其他工具
# Aider(终端,PowerShell) $env:OLLAMA_API_BASE = "http://192.168.5.18:11434" aider --model ollama_chat/qwen3-coder:30b --timeout 600
Cline(VS Code 插件):Request Timeout 毫秒制改 600000。
▍9.4 API 直调(OpenAI 兼容)
from openai import OpenAI
client = OpenAI(base_url="http://192.168.5.18:11434/v1", api_key="ollama")
resp = client.chat.completions.create(
model="qwen3-coder:30b",
messages=[{"role": "user", "content": "你的问题"}],
)▍9.5 使用纪律(重要)
单次上下文控制在 3 万 tokens 内(预填充 <45 秒),11 万 tokens 每次要白等 3 分钟
保持系统提示词/公共上下文稳定 —— 前缀缓存命中后,重复前缀预填充 34s → 0.04s
gpt-oss 简单任务加
reasoning_effort: lowIDE 里用
#文件精确指定相关文件,别让全文自动索引
10 性能实测数据
| 指标 | 数值 | 备注 |
|---|---|---|
| qwen3-coder 生成 | ~72 tok/s | 100% GPU,热机 |
| qwen3-coder 预填充 | ~875 tok/s | num_batch=1024 实测反而 -13%,已回滚 |
| mini 生成 / 预填充 | 61 / 1066 tok/s | 3.9GB |
| gpt-oss:120b 生成 | ~35 tok/s | 含思考链 |
| gpt-oss 换入 | 13-19s | 与 coder 互斥(60+31 > 96GB) |
| 前缀缓存命中 | 预填充 34s → 0.04s | 相同前缀第二次请求 |
模型生成速度对比(tokens/s,100% GPU)
预填充速度对比(tokens/s,新上下文)
11 踩坑记录与经验
| # | 现象 | 根因 | 处理 |
|---|---|---|---|
| 1 | 请求 91 秒整被掐断 | Trae 套接字静默超时 90s × 大上下文慢预填充 | 心跳代理 11435 |
| 2 | 换代理后报 Timeout after 60000ms (origin: downstream) (4028) | Trae 第二道看门狗:60s 内必须有真 data: 帧 | 心跳升级为空内容 delta 数据帧 |
| 3 | Open WebUI 模型列表为空 | 防火墙只放行了 192.168.0.0/16,Docker 网桥(172.17.x)访问 Ollama 被拒 | ufw 放行 172.16.0.0/12 → 11434 |
| 4 | KV cache q8_0 没必要 | 96GB 显存不缺 1GB | 保持 f16 |
| 5 | MAX_LOADED_MODELS=1 导致 mini 挤掉大模型 | 配置方向错误 | 改为 2 |
| 6 | num_batch=1024 期望提速 | 实测 gfx1151 上反而慢 13% | 保持默认 512 |
| 7 | open-vsx 下载 8 KB/s | CDN 被限速 | 改用 GitHub Releases |
| 8 | 模型让用户“复制粘贴代码” | Trae Chat 模式不给自定义模型挂工具 | 用 Roo Code Code 模式 |
| 9 | 显存显示 30GB 不是 128GB | BIOS 把 96GB 划给 iGPU | 属预期,ollama ps 可见 96GB |
12 日常运维命令
ssh czj@192.168.5.18 # 密码 ********
# Ollama
sudo systemctl restart ollama
ollama ps # 模型驻留状态 / 显存 / UNTIL(应显示 Forever)
journalctl -u ollama -f # 实时日志(可观察预填充、请求耗时、并发)
ollama pull <模型名>
# Open WebUI
sudo docker restart open-webui
journalctl -u open-webui -f # 不适用则: sudo docker logs -f open-webui
# 心跳代理
sudo systemctl restart ollama-ka-proxy
journalctl -u ollama-ka-proxy -f
# 快速健康检查
curl -s http://localhost:11434/v1/models | head -c 100
curl -s http://localhost:11435/v1/models | head -c 100
curl -s -o /dev/null -w '%{http_code}' http://localhost:3000
# 资源监控
rocm-smi # GPU/显存
htop▍远程连接示例(Windows 端 PowerShell + plink)
$env:PUTTY_RNDFILE="$env:TEMP\putty.rnd" Get-Content .\script.sh -Raw | & "$env:TEMP\plink.exe" -ssh -batch ` -hostkey "SHA256:artoIwJiv4XGlq1zMAVG0Ezo+A73suFB0HlMZYI8K3w" ` czj@192.168.5.18 -pw ******** "tr -d '\r\357\273\277' | bash"
本文档由搭建过程自动整理生成。所有配置均已持久化(systemd / Docker / ufw),重启后自动生效。
Strix Halo AI Server Manual · 2026-10-22
甘公网安备62030002000100