当前位置:首页 > linux运维

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

目录

  1. 系统概览

  2. 基础环境安装

  3. Ollama 服务配置

  4. 模型清单与参数

  5. 系统级性能调优

  6. 服务器化精简(去桌面)

  7. Open WebUI 管理端

  8. 心跳代理(解决客户端超时)

  9. 客户端接入指南

  10. 性能实测数据

  11. 踩坑记录与经验

  12. 日常运维命令

01 系统概览

▍硬件

项目配置
APUAMD AI MAX+ 395(Strix Halo),16 核 Zen5
GPURadeon 8060S 核显(gfx1151),BIOS 划分 96GB 统一显存
内存128GB DDR5(96GB 给 iGPU,系统可见约 30GB)
网络有线局域网,静态 IP 192.168.5.18

▍软件栈

层组件版本
OSUbuntu Server(无桌面)24.04.4,内核 7.0.0
GPU 驱动ROCm7.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 秒加载),用完自动换回

  • 口诀:一小一大常驻,两大按需互换

KV cache
保持 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:4bmini 的基础版(可删)———

▍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 governorperformancetokenizer/调度不拖后腿,CPU 可上 5.1GHz
vm.swappiness10杜绝大模型加载/长会话换页卡顿
透明大页always11GB 级 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 有两道看门狗:

  1. 90 秒套接字静默超时 —— 大上下文预填充期间(本地 iGPU 预填充仅 ~875 tok/s,11 万 tokens 需 2-3 分钟)连接全程无字节,被客户端掐断

  2. 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 使用纪律(重要)

  1. 单次上下文控制在 3 万 tokens 内(预填充 <45 秒),11 万 tokens 每次要白等 3 分钟

  2. 保持系统提示词/公共上下文稳定 —— 前缀缓存命中后,重复前缀预填充 34s → 0.04s

  3. gpt-oss 简单任务加 reasoning_effort: low

  4. IDE 里用 #文件 精确指定相关文件,别让全文自动索引

10 性能实测数据

指标数值备注
qwen3-coder 生成~72 tok/s100% GPU,热机
qwen3-coder 预填充~875 tok/snum_batch=1024 实测反而 -13%,已回滚
mini 生成 / 预填充61 / 1066 tok/s3.9GB
gpt-oss:120b 生成~35 tok/s含思考链
gpt-oss 换入13-19s与 coder 互斥(60+31 > 96GB)
前缀缓存命中预填充 34s → 0.04s相同前缀第二次请求

模型生成速度对比(tokens/s,100% GPU)

qwen3-coder:30b —— 72 tok/s
mini —— 61 tok/s
gpt-oss:120b —— 35 tok/s

预填充速度对比(tokens/s,新上下文)

mini —— 1066 tok/s
qwen3-coder:30b —— 875 tok/s

11 踩坑记录与经验

#现象根因处理
1请求 91 秒整被掐断Trae 套接字静默超时 90s × 大上下文慢预填充心跳代理 11435
2换代理后报 Timeout after 60000ms (origin: downstream) (4028)Trae 第二道看门狗:60s 内必须有真 data: 帧心跳升级为空内容 delta 数据帧
3Open WebUI 模型列表为空防火墙只放行了 192.168.0.0/16,Docker 网桥(172.17.x)访问 Ollama 被拒ufw 放行 172.16.0.0/12 → 11434
4KV cache q8_0 没必要96GB 显存不缺 1GB保持 f16
5MAX_LOADED_MODELS=1 导致 mini 挤掉大模型配置方向错误改为 2
6num_batch=1024 期望提速实测 gfx1151 上反而慢 13%保持默认 512
7open-vsx 下载 8 KB/sCDN 被限速改用 GitHub Releases
8模型让用户“复制粘贴代码”Trae Chat 模式不给自定义模型挂工具用 Roo Code Code 模式
9显存显示 30GB 不是 128GBBIOS 把 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

扫描二维码推送至手机访问。

版权声明:本文由爱开发博客发布,如需转载请注明出处。

本文链接:https://www.lovekf.cn/?id=50

分享给朋友:

“AMD AI MAX+ 395使用乌班图搭建AI大模型” 的相关文章

openvpn服务端一键搭建

需求: 搭建openvpn目的是安全访问内网和匿名访问其他网站,确保隐私信息不会泄露。 搭建方法: 1.复制以下脚本命名为“openvpn-install.sh”,在ssh中执行。 ```bash#!/bin/bash shellcheck disable=SC1091,SC2164,SC…

aria2配置文件和bt-tracker定期更新脚本

# # https://github.com/P3TERX/aria2.conf # File name:aria2.conf # Description: Awesome Aria2 configuration file # Version: 2021.09.15 # # Copyright (c…

docker 安装

1.卸载旧版docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \…

CentOS优化手册

1. 调整 journal 存储设置( 解决systemd 或者 systemd-journald 进程占用大量 CPU 或内存资源的情况)编辑 /etc/systemd/journald.conf 文件,并更改 Storage 参数。例如,将其从 persistent 改为 volatile 或…

linux基线配置脚本(自己更具需求书写,并不适合所有人)

支持内容:1.检查更新系统时间。 ```bash#!/bin/bash 更新系统时间(假设你有NTP服务或者可以访问互联网时间服务器)echo “Updating system time using NTP…”sudo timedatectl set-ntp true 检查是否成功设置…

使用自定义docker加速地址下载镜像

1.例如加速地址为:https://docker.1ms.run2.配置docker加速地址cat > /etc/docker/daemon.json <<EOF > {"registry-mirrors":&nb…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。