3.2 vLLM 与 GPU 监控
一句话判断
Ollama 是“能跑”,vLLM 是“跑得快”。如果你要的是高并发、高吞吐的本地推理服务(给智能体群、给业务系统供 API),vLLM 是专业版的正解;而 GPU 监控是你判断“显卡有没有被吃干净、要不要扩容”的眼睛。
vLLM 是什么,和 Ollama 怎么选
vLLM 是面向大语言模型的高吞吐、内存高效推理与服务引擎。1Panel 在 AI → 模型 → 本地模型 → vLLM 页面提供可视化管理。该功能需要专业版或企业版许可证。
先给一张选型表:
| 维度 | Ollama | vLLM |
|---|---|---|
| 定位 | 本地玩、单机对话 | 高并发推理服务 |
| 吞吐 | 一般(串行友好) | 高(PagedAttention 等优化) |
| 版本要求 | 社区版免费 | 专业版/企业版 |
| 部署复杂度 | 一键 | 要选加速设备、版本、模型目录、启动命令 |
| 典型场景 | 个人助手、内部工具 | 给业务供 API、压测对比 |
一句话决策:自己聊聊天,Ollima 足够;要 serving,上 vLLM。(顺带一提,Ollama 和 vLLM 可以共存,按 3.1 节的方式分别管理。)
前置条件:四个检查项
官方文档列出的前置条件,逐条对照:
- 服务器已安装与所选 vLLM 镜像和加速设备匹配的驱动及容器运行环境;
- NVIDIA GPU 时,
nvidia-smi能正常查看显卡信息,并已配置 NVIDIA Container Toolkit; - Intel 或昇腾加速设备时,已按厂商要求完成驱动和容器运行环境配置;
- 已提前把模型文件放到服务器本地目录。
第 4 条是 vLLM 和 Ollama 最大的体验差异:vLLM 不帮你拉模型,它加载的是你提前准备好的本地模型目录(可以用 3.1 节的模型下载器准备好)。先有模型,再创服务,顺序不能反。
检查 GPU 是否可用,先看 GPU 监控页面,或者终端 nvidia-smi。
创建 vLLM 服务:参数逐个说
进入 AI → 模型,切换到 本地模型 → vLLM,点击 创建。创建过程是后台任务,完成后在列表看状态。
| 参数 | 说明 | 建议 |
|---|---|---|
| 名称 | 服务名,用于列表展示 | 有意义的名,如 vllm-qwen7b |
| 加速设备 | NVIDIA、Intel 或昇腾,按实际硬件选 | 以页面检测结果为准 |
| 版本 | vLLM 应用版本,不同设备用不同镜像 | 跟着页面默认 |
| 端口 | 对外 API 端口,默认 8000 |
被占用就换一个 |
| 模型目录 | 服务器上的本地模型目录,会挂载进容器 | 提前用下载器准备好 |
| 启动命令 | 启动 vLLM 的命令参数,选模型目录后自动生成 | 有特殊推理参数才改 |
启动命令是自动生成的。 选了模型目录后,1Panel 会根据目录名生成默认命令。除非你有明确的推理参数需求(比如指定 --max-model-len、量化参数),别动它——启动命令写错,服务起不来,排查全靠日志。
创建完成后,vLLM 以 OpenAI 兼容接口对外提供推理能力。这是关键:意味着任何会调 OpenAI API 的应用都能直接对接,迁移成本几乎为零。
然后一步很重要:把服务同步为模型账号,供智能体及其他 AI 功能选择。同步时确认 Base URL、API 类型和模型信息与实际服务一致。不同步的话,智能体列表里看不到这个 vLLM 服务。
高级设置:有经验才动
展开高级设置可以看到:
| 设置 | 作用 | 劝告 |
|---|---|---|
| 容器名称 | 自定义容器名,默认跟服务名 | 保持默认 |
| 端口外部访问 | 开放防火墙端口,允许外部访问 | 默认别开(见下) |
| 绑定主机 IP | 只绑定到指定地址/网卡 | 不懂就默认 |
| 重启策略 | 容器异常退出后的重启方式 | 建议开启自动重启 |
| CPU/内存限制 | 限制容器可用资源 | 显卡机器也要留 CPU |
| 拉取镜像 | 启动前主动拉取目标镜像 | 网络差时勾上 |
| 编辑 compose 文件 | 手动改 Compose 配置 | 最容易翻车的入口 |
官方对编辑 compose 文件的措辞是:“该选项适合有经验的用户,修改不当可能导致创建失败。” 我的补充:改 compose 文件之前,先搞清楚 1Panel 生成的原始内容,在原始内容上改,不要重写;改完创建失败,先看任务日志的报错,通常指向你改的那一行。
外部访问:一条必须记住的安全红线
官方的警告值得原文引用:
模型 API 默认不等同于已完成身份认证,不应直接暴露到不受信任的网络。
vLLM 服务默认是没有鉴权的。 你把 8000 端口开到公网,等于把一个免费的、无密码的、还能消耗你显卡的 API 送给了全世界。
正确做法:
| 场景 | 怎么暴露 |
|---|---|
| 只给本机智能体用 | 端口仅绑定本机,不开放外部访问 |
| 给内网其他机器用 | 绑定内网 IP + 防火墙限制来源 |
| 给公网用 | 反向代理 + 域名 + HTTPS + 访问控制,别直连端口 |
开端口外部访问之前,先想清楚这三层你做了哪层。
日常管理
列表支持查看状态和运行目录,提供编辑、启动、停止、重启、删除、查看日志和任务追踪。
一条重要机制:修改镜像、启动命令、挂载或资源限制可能触发容器重建;未挂载到主机目录的数据不会随容器保留。 翻译一下:容器里的临时数据重建就没了,重要的东西(模型文件、日志)一定要挂载到主机目录。
排查启动失败,顺序是:任务日志 → 容器日志 → 启动命令 → 显存够不够。最常见的失败是显存不足——vLLM 启动时会预分配显存,模型放不下就直接挂。
GPU 监控:你的显卡仪表盘
GPU 监控入口是 AI → GPU 监控,社区版、专业版和企业版都能用。页面分当前状态和历史记录两个标签,多节点环境下展示的是当前所选节点的数据。
前提
1Panel 通过主机上已安装的显卡管理工具读数据。NVIDIA 的例子:装好匹配驱动,终端 nvidia-smi 正常返回。容器里用 GPU 还需要 NVIDIA Container Toolkit。
驱动与内核强绑定:升级内核或驱动可能影响现有 GPU 工作负载,生产环境先确认兼容性并安排维护窗口。
当前状态看什么
当前状态展示驱动版本、显卡型号、利用率、显存、温度、功耗等指标,并列出正在使用 GPU 的进程。
| 指标 | 判断方向 |
|---|---|
| 显存占用 | 接近满 → 加不了新服务;持续满 → 考虑扩容 |
| 利用率 | 长期个位数 → 显卡闲着,投入没收回 |
| 温度 / 功耗 | 异常高 → 散热或电源问题 |
| 占用进程 | 谁在吃显卡,一目了然 |
页面无数据怎么办? 官方给的路:先在终端验证显卡管理命令,再检查驱动状态和 1Panel 服务日志。90% 的“GPU 监控空白”是驱动没装好或者 nvidia-smi 本身就不通。
历史记录
历史记录按时间范围看 GPU 指标趋势。只有已被采集并保存的数据才能形成历史曲线——刚启用时是空的,等一段时间才有。切换节点时,重新确认当前节点和查询时间范围。
在容器中使用 GPU
驱动和容器工具配置好后,可以在支持 GPU 的应用或容器配置中开启 GPU 加速并选择设备。容器启动后,通过容器日志、主机 GPU 进程和利用率确认设备是否生效。
确认这一步很重要:有些容器配了 GPU 但实际没拿到,日志里不一定报错,只有“GPU 监控里没出现这个进程”能暴露问题。
本节要点
- vLLM 需要专业版/企业版,先把模型文件准备好再创建服务;
- 启动命令自动生成,没有明确需求别改;compose 文件是“高级且危险”的入口;
- vLLM 以 OpenAI 兼容接口运行,创建后同步为模型账号才能被智能体选用;
- 模型 API 默认无鉴权,暴露到公网前必须加反向代理和访问控制;
- 容器重建会丢未挂载的数据,重要目录挂载到主机;
- GPU 监控全民免费,前提是
nvidia-smi能通;升级内核会让驱动失效。
vLLM 的完整参数说明见 《1Panel 官方文档:功能手册》 的 vLLM 与 GPU 监控章节。
下一节:模型能跑了,该让它们“干活”了——智能体和企业版的 AI 网关,见 3.3 节。
