<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>VLLM on 诚实雷达</title><link>https://honestradar.com/tags/vllm/</link><description>Recent content in VLLM on 诚实雷达</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 17 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://honestradar.com/tags/vllm/index.xml" rel="self" type="application/rss+xml"/><item><title>VPS 多模型 AI 服务集群：Ollama + vLLM + LiteLLM 混合部署实战（2026 年 6 月）</title><link>https://honestradar.com/vps-hosting/vps-ai-model-cluster-2026/</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://honestradar.com/vps-hosting/vps-ai-model-cluster-2026/</guid><description>&lt;img src="https://honestradar.com/images/vps-ai-model-cluster-2026.jpg" alt="Featured image of post VPS 多模型 AI 服务集群：Ollama + vLLM + LiteLLM 混合部署实战（2026 年 6 月）" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;本文包含 VPS 服务商 affiliate 链接。你通过链接购买，我们可能获得佣金，但不会影响你的价格。我们只推荐适合实际部署场景的海外服务。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="为什么你需要一个多模型-ai-集群"&gt;为什么你需要一个多模型 AI 集群？
&lt;/h2&gt;&lt;p&gt;如果你已经在 VPS 上跑过 Ollama 或 LiteLLM，你可能遇到过这些问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;单一模型不够用&lt;/strong&gt;：Ollama 的 Llama 3.1 8B 对话不错，但处理复杂推理时不如 Mistral 72B；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型切换成本高&lt;/strong&gt;：今天用 Llama，明天想试 Qwen，每次都要停服务、拉模型、改配置；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;没有故障转移&lt;/strong&gt;：某个模型推理超时或 OOM 崩溃了，整个 API 直接 500；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无法统一接口&lt;/strong&gt;：前端应用要同时对接 Ollama 和 vLLM，得写两套适配代码。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;多模型 AI 集群&lt;/strong&gt;就是为了解决这些问题而生的：用 Docker Compose 在一台 VPS 上同时部署 Ollama（轻量模型）、vLLM（高性能推理）和 LiteLLM（统一网关），对外暴露一个 OpenAI-compatible 的 API 端点，内部自动路由到最合适的模型。&lt;/p&gt;
&lt;p&gt;本文手把手教你在 $10-$15/月的 VPS 上搭建这套集群，包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;服务器选型与规格建议&lt;/li&gt;
&lt;li&gt;Docker Compose 一键部署&lt;/li&gt;
&lt;li&gt;模型热加载与切换&lt;/li&gt;
&lt;li&gt;LiteLLM 自动故障转移&lt;/li&gt;
&lt;li&gt;反向代理 + HTTPS 安全加固&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="服务器选型跑多模型集群需要什么配置"&gt;服务器选型：跑多模型集群需要什么配置？
&lt;/h2&gt;&lt;p&gt;多模型集群的资源需求远高于单模型部署。以下是我们的实测建议：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;配置档位&lt;/th&gt;
 &lt;th&gt;CPU&lt;/th&gt;
 &lt;th&gt;RAM&lt;/th&gt;
 &lt;th&gt;磁盘&lt;/th&gt;
 &lt;th&gt;月付参考价&lt;/th&gt;
 &lt;th&gt;适合场景&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;入门&lt;/td&gt;
 &lt;td&gt;2 核&lt;/td&gt;
 &lt;td&gt;4GB&lt;/td&gt;
 &lt;td&gt;50GB SSD&lt;/td&gt;
 &lt;td&gt;$3-5&lt;/td&gt;
 &lt;td&gt;仅 Ollama 单模型&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;推荐&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;4 核&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;16GB&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;100GB NVMe&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;$10-15&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Ollama + 1 个小模型 + LiteLLM&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;高性能&lt;/td&gt;
 &lt;td&gt;8 核&lt;/td&gt;
 &lt;td&gt;32GB&lt;/td&gt;
 &lt;td&gt;200GB NVMe&lt;/td&gt;
 &lt;td&gt;$25-40&lt;/td&gt;
 &lt;td&gt;Ollama + vLLM + 多模型并发&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;旗舰&lt;/td&gt;
 &lt;td&gt;16 核&lt;/td&gt;
 &lt;td&gt;64GB&lt;/td&gt;
 &lt;td&gt;500GB NVMe&lt;/td&gt;
 &lt;td&gt;$60-100&lt;/td&gt;
 &lt;td&gt;多 vLLM 实例 + 生产级负载&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;核心建议&lt;/strong&gt;：内存是关键瓶颈。一个 7B 参数的 FP16 模型大约需要 14GB 显存/内存，加上 Ollama + LiteLLM + 系统开销，&lt;strong&gt;16GB 内存是最低可行配置&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="推荐-vps-服务商"&gt;推荐 VPS 服务商
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;服务商&lt;/th&gt;
 &lt;th&gt;推荐套餐&lt;/th&gt;
 &lt;th&gt;月付&lt;/th&gt;
 &lt;th&gt;数据中心&lt;/th&gt;
 &lt;th&gt;选购链接&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a class="link" href="https://racknerd.com/?aff=19978" target="_blank" rel="noopener"
 &gt;RackNerd&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;4 核 / 16GB / 100GB NVMe&lt;/td&gt;
 &lt;td&gt;~$12.99/年&lt;/td&gt;
 &lt;td&gt;DC02/DC03/DC09&lt;/td&gt;
 &lt;td&gt;&lt;a class="link" href="https://racknerd.com/?aff=19978" target="_blank" rel="noopener"
 &gt;查看详情&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a class="link" href="https://www.hostinger.com/vps?action=share&amp;amp;referral=JZ1ZL8465QCG" target="_blank" rel="noopener"
 &gt;Hostinger&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Business VPS&lt;/td&gt;
 &lt;td&gt;$9.99/月&lt;/td&gt;
 &lt;td&gt;洛杉矶、阿姆斯特丹、新加坡&lt;/td&gt;
 &lt;td&gt;&lt;a class="link" href="https://www.hostinger.com/vps?action=share&amp;amp;referral=JZ1ZL8465QCG" target="_blank" rel="noopener"
 &gt;领取优惠&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a class="link" href="https://www.vultr.com/?ref=9706229" target="_blank" rel="noopener"
 &gt;Vultr&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;High Frequency 4C/16G&lt;/td&gt;
 &lt;td&gt;$16.00/月&lt;/td&gt;
 &lt;td&gt;全球 32 个地点&lt;/td&gt;
 &lt;td&gt;&lt;a class="link" href="https://www.vultr.com/?ref=9706229" target="_blank" rel="noopener"
 &gt;免费试用 $100&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;为什么选 RackNerd？&lt;/strong&gt; 年付 $12.99 的价格在 4C16G 档位极具竞争力，DC03（纽约）延迟低、线路稳，适合跑 AI 服务。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="架构总览"&gt;架构总览
&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;用户请求
 │
 ▼
┌─────────────────────┐
│ Nginx Reverse │ ← HTTPS / TLS / 速率限制
│ Proxy (443) │
└─────────┬───────────┘
 │
 ┌─────▼─────┐
 │ LiteLLM │ ← 统一 API 网关 / 故障转移 / 负载均衡
 │ :4000 │ (OpenAI-compatible 接口)
 └─────┬─────┘
 │
 ┌─────┴──────┬──────────┐
 ▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ Ollama │ │ vLLM │ │ OpenAI │
│ :11434 │ │ :8000 │ │ Proxy │
│ (小模型)│ │ (大模型)│ │ (云端) │
└────────┘ └────────┘ └────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;关键设计决策&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ollama&lt;/strong&gt; 负责轻量对话模型（Llama 3.1 8B、Mistral 7B），GPU 加速可选&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vLLM&lt;/strong&gt; 负责高性能推理（Qwen 2.5 72B、Llama 3.1 70B），需要 GPU 或大内存 CPU 推理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LiteLLM&lt;/strong&gt; 作为统一入口，自动路由请求到最合适的后端，支持 fallback&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="第一步准备-vps-环境"&gt;第一步：准备 VPS 环境
&lt;/h2&gt;&lt;p&gt;以 Debian 12 为例（所有推荐 VPS 服务商均支持）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# SSH 登录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh root@your-vps-ip
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 更新系统&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade -y
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 安装 Docker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -fsSL https://get.docker.com | sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 安装 Docker Compose Plugin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install -y docker-compose-plugin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 验证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker version &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; docker compose version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;内存不足警告&lt;/strong&gt;：如果你的 VPS 只有 4GB 内存，请先创建 swap：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;fallocate -l 4G /swapfile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod &lt;span style="color:#ae81ff"&gt;600&lt;/span&gt; /swapfile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkswap /swapfile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;swapon /swapfile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;/swapfile none swap sw 0 0&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/fstab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="第二步部署-ollama轻量模型服务"&gt;第二步：部署 Ollama（轻量模型服务）
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# docker-compose.yml 片段&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ollama&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;ollama/ollama:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;container_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;ollama&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;11434:11434&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;ollama_data:/root/.ollama&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;restart&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;unless-stopped&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 如果有 GPU（如 NVIDIA T4），取消注释：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# deploy:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# resources:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# reservations:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# devices:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# - driver: nvidia&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# count: 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# capabilities: [gpu]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;拉取常用模型：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 进入容器并拉取模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker exec -it ollama ollama pull llama3.1:8b
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker exec -it ollama ollama pull mistral:7b
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker exec -it ollama ollama pull qwen2.5:7b
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 验证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl http://localhost:11434/api/tags | python3 -m json.tool
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="第三步部署-vllm高性能推理后端"&gt;第三步：部署 vLLM（高性能推理后端）
&lt;/h2&gt;&lt;p&gt;vLLM 支持 PagedAttention 技术，吞吐量比 Ollama 高 2-4 倍，适合大模型：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;vllm&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;vllm/vllm-openai:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;container_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;vllm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;8000:8000&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;vllm_data:/root/.cache/huggingface&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;restart&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;unless-stopped&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;command&lt;/span&gt;: &amp;gt;&lt;span style="color:#e6db74"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; --model Qwen/Qwen2.5-7B-Instruct
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; --tensor-parallel-size 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; --max-model-len 8192&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# GPU 环境取消注释：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# deploy:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# resources:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# reservations:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# devices:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# - driver: nvidia&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# count: 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# capabilities: [gpu]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;CPU-only 注意&lt;/strong&gt;：70B 级别模型在纯 CPU 上推理速度很慢（每秒 ~0.5 token）。建议先用 7B-14B 模型测试，确认性能达标后再上大模型。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;验证 vLLM：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl http://localhost:8000/v1/models | python3 -m json.tool
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="第四步部署-litellm-统一网关"&gt;第四步：部署 LiteLLM 统一网关
&lt;/h2&gt;&lt;p&gt;这是整个集群的&amp;quot;大脑&amp;quot;——它把所有后端统一成一个 OpenAI-compatible API：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;litellm&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;ghcr.io/berriai/litellm:main-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;container_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;litellm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;4000:4000&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;./litellm-config.yaml:/app/config.yaml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;restart&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;unless-stopped&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;command&lt;/span&gt;: --&lt;span style="color:#ae81ff"&gt;config /app/config.yaml --port 4000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;LiteLLM 配置文件&lt;/strong&gt; (&lt;code&gt;litellm-config.yaml&lt;/code&gt;)：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;model_list&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Ollama 后端 - 轻量对话&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;model_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;llama3.1-8b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;litellm_params&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;model&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;openai/ollama/llama3.1:8b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;api_base&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;http://ollama:11434&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;api_key&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;not-needed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;model_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;mistral-7b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;litellm_params&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;model&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;openai/ollama/mistral:7b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;api_base&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;http://ollama:11434&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;api_key&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;not-needed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# vLLM 后端 - 高性能推理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;model_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;qwen2.5-7b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;litellm_params&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;model&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;openai/vllm/Qwen/Qwen2.5-7B-Instruct&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;api_base&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;http://vllm:8000/v1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;api_key&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;not-needed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;max_tokens&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;4096&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 故障转移组 - 当 Ollama 不可用时自动切换到 vLLM&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;model_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;fallback-chat&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;litellm_params&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;model&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;openai/ollama/llama3.1:8b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;api_base&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;http://ollama:11434&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;api_key&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;not-needed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;fallbacks&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;openai/vllm/Qwen/Qwen2.5-7B-Instruct&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;num_retries&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 全局设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;general_settings&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;master_key&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;sk-your-master-key-here&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;store_api_keys&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;启动集群：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="第五步统一入口--nginx-反向代理--https"&gt;第五步：统一入口 — Nginx 反向代理 + HTTPS
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# /etc/nginx/sites-available/ai-cluster
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;listen&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;443&lt;/span&gt; &lt;span style="color:#e6db74"&gt;ssl&lt;/span&gt; &lt;span style="color:#e6db74"&gt;http2&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;server_name&lt;/span&gt; &lt;span style="color:#e6db74"&gt;ai.yourdomain.com&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_certificate&lt;/span&gt; &lt;span style="color:#e6db74"&gt;/etc/letsencrypt/live/ai.yourdomain.com/fullchain.pem&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_certificate_key&lt;/span&gt; &lt;span style="color:#e6db74"&gt;/etc/letsencrypt/live/ai.yourdomain.com/privkey.pem&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 速率限制
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;limit_req_zone&lt;/span&gt; $binary_remote_addr &lt;span style="color:#e6db74"&gt;zone=ai_limit:10m&lt;/span&gt; &lt;span style="color:#e6db74"&gt;rate=30r/s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# LiteLLM 网关（主入口）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;location&lt;/span&gt; &lt;span style="color:#e6db74"&gt;/&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;limit_req&lt;/span&gt; &lt;span style="color:#e6db74"&gt;zone=ai_limit&lt;/span&gt; &lt;span style="color:#e6db74"&gt;burst=50&lt;/span&gt; &lt;span style="color:#e6db74"&gt;nodelay&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_pass&lt;/span&gt; &lt;span style="color:#e6db74"&gt;http://litellm:4000&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;Host&lt;/span&gt; $host;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;X-Real-IP&lt;/span&gt; $remote_addr;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;X-Forwarded-For&lt;/span&gt; $proxy_add_x_forwarded_for;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;X-Forwarded-Proto&lt;/span&gt; $scheme;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# WebSocket 支持（用于流式输出）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_http_version&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;&lt;span style="color:#e6db74"&gt;.1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;Upgrade&lt;/span&gt; $http_upgrade;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;Connection&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;upgrade&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 超时设置
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_read_timeout&lt;/span&gt; &lt;span style="color:#e6db74"&gt;300s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_send_timeout&lt;/span&gt; &lt;span style="color:#e6db74"&gt;300s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 直接访问 Ollama（可选，建议禁用）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# location /api/ {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# proxy_pass http://ollama:11434;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;listen&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;server_name&lt;/span&gt; &lt;span style="color:#e6db74"&gt;ai.yourdomain.com&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;301&lt;/span&gt; &lt;span style="color:#e6db74"&gt;https://&lt;/span&gt;$server_name$request_uri;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;获取 SSL 证书（Let&amp;rsquo;s Encrypt）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install -y certbot python3-certbot-nginx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;certbot --nginx -d ai.yourdomain.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="第六步测试你的-ai-集群"&gt;第六步：测试你的 AI 集群
&lt;/h2&gt;&lt;p&gt;一切就绪后，用统一的 OpenAI-compatible 接口测试：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 测试 LiteLLM 统一接口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl http://localhost:4000/v1/chat/completions &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -H &lt;span style="color:#e6db74"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;model&amp;#34;: &amp;#34;llama3.1-8b&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;messages&amp;#34;: [{&amp;#34;role&amp;#34;: &amp;#34;user&amp;#34;, &amp;#34;content&amp;#34;: &amp;#34;你好，介绍一下你自己&amp;#34;}],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;stream&amp;#34;: true
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; }&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 测试故障转移 — 故意停止 Ollama，看是否自动切换到 vLLM&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker stop ollama
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 请求应自动 fallback 到 qwen2.5-7b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 测试直接调用 vLLM&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl http://localhost:4000/v1/chat/completions &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -H &lt;span style="color:#e6db74"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;model&amp;#34;: &amp;#34;qwen2.5-7b&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;messages&amp;#34;: [{&amp;#34;role&amp;#34;: &amp;#34;user&amp;#34;, &amp;#34;content&amp;#34;: &amp;#34;用 Python 写一个快速排序&amp;#34;}]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; }&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="进阶监控与告警"&gt;进阶：监控与告警
&lt;/h2&gt;&lt;h3 id="使用-litellm-内置日志"&gt;使用 LiteLLM 内置日志
&lt;/h3&gt;&lt;p&gt;LiteLLM 支持将 API 调用日志写入 PostgreSQL、Elasticsearch 或本地文件：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;general_settings&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;litellm_settings&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;successful_response_logger&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;drop_params&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;database_url&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;postgresql://user:pass@postgres:5432/litellm&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="添加-prometheus--grafana-监控"&gt;添加 Prometheus + Grafana 监控
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;prometheus&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;prom/prometheus:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;container_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;prometheus&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;9090:9090&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;./prometheus.yml:/etc/prometheus/prometheus.yml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;prometheus_data:/prometheus&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;grafana&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;grafana/grafana:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;container_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;grafana&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;3000:3000&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;grafana_data:/var/lib/grafana&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;depends_on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;prometheus&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;关键监控指标：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;指标&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;告警阈值&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;litellm_proxy_request_success_total&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;成功请求数&lt;/td&gt;
 &lt;td&gt;持续下降 → 后端故障&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;litellm_proxy_request_latency_seconds&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;请求延迟&lt;/td&gt;
 &lt;td&gt;P99 &amp;gt; 30s → 模型过载&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;container_memory_usage_bytes&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;容器内存&lt;/td&gt;
 &lt;td&gt;&amp;gt; 90% → OOM 风险&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ollama_model_load_duration_seconds&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;模型加载时间&lt;/td&gt;
 &lt;td&gt;&amp;gt; 60s → 磁盘 I/O 瓶颈&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="成本分析"&gt;成本分析
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;组件&lt;/th&gt;
 &lt;th&gt;资源占用&lt;/th&gt;
 &lt;th&gt;月成本&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Ollama (llama3.1:8b)&lt;/td&gt;
 &lt;td&gt;8GB RAM, ~20% CPU&lt;/td&gt;
 &lt;td&gt;$0 (开源)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;vLLM (qwen2.5:7b)&lt;/td&gt;
 &lt;td&gt;14GB RAM, ~30% CPU&lt;/td&gt;
 &lt;td&gt;$0 (开源)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LiteLLM 网关&lt;/td&gt;
 &lt;td&gt;512MB RAM, ~5% CPU&lt;/td&gt;
 &lt;td&gt;$0 (开源)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;VPS 服务器&lt;/td&gt;
 &lt;td&gt;4 核 / 16GB / 100GB&lt;/td&gt;
 &lt;td&gt;$10-16&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;域名 + SSL&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;$0-12/年&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;总计&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;~$12-18/月&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;对比云端 API 成本：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;场景&lt;/th&gt;
 &lt;th&gt;云端 API 月费&lt;/th&gt;
 &lt;th&gt;自托管月费&lt;/th&gt;
 &lt;th&gt;节省&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;每日 1000 次对话 (8B 模型)&lt;/td&gt;
 &lt;td&gt;~$50&lt;/td&gt;
 &lt;td&gt;~$13&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;74%&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;每日 5000 次对话&lt;/td&gt;
 &lt;td&gt;~$250&lt;/td&gt;
 &lt;td&gt;~$16&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;94%&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;每日 10000 次对话 + 批量推理&lt;/td&gt;
 &lt;td&gt;~$500&lt;/td&gt;
 &lt;td&gt;~$25 (8 核)&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;95%&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;用量越大，自托管越划算。超过每日 2000 次调用，自托管基本都能回本。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="常见问题"&gt;常见问题
&lt;/h2&gt;&lt;h3 id="q-我的-vps-只有-8gb-内存能跑吗"&gt;Q: 我的 VPS 只有 8GB 内存，能跑吗？
&lt;/h3&gt;&lt;p&gt;可以，但需要精简。只跑 Ollama + LiteLLM，不跑 vLLM。选 7B 以下的模型（如 llama3.1:8b 的量化版 llama3.1:8b-q4_K_M），内存占用可降到 6GB 以内。&lt;/p&gt;
&lt;h3 id="q-如何防止别人滥用我的-api"&gt;Q: 如何防止别人滥用我的 API？
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;LiteLLM 的 &lt;code&gt;master_key&lt;/code&gt; 做身份验证&lt;/li&gt;
&lt;li&gt;Nginx 层 &lt;code&gt;limit_req&lt;/code&gt; 做速率限制&lt;/li&gt;
&lt;li&gt;LiteLLM 的 &lt;code&gt;budget_limit&lt;/code&gt; 设置每个 key 的月度预算&lt;/li&gt;
&lt;li&gt;防火墙只开放 443 端口，屏蔽 11434 和 8000 的公网访问&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="q-可以加更多模型吗"&gt;Q: 可以加更多模型吗？
&lt;/h3&gt;&lt;p&gt;当然。在 &lt;code&gt;litellm-config.yaml&lt;/code&gt; 的 &lt;code&gt;model_list&lt;/code&gt; 中添加新的 model entry 即可。支持的后端包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama 系列（Llama、Mistral、Qwen、Phi 等）&lt;/li&gt;
&lt;li&gt;vLLM 系列（任何 HuggingFace 兼容模型）&lt;/li&gt;
&lt;li&gt;OpenAI / Claude / Gemini（通过 API Key 代理）&lt;/li&gt;
&lt;li&gt;任何 OpenAI-compatible 接口&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="q-模型太大加载慢怎么办"&gt;Q: 模型太大加载慢怎么办？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;使用量化模型（GGUF 格式的 q4/q5 量化，精度损失 &amp;lt; 2%）&lt;/li&gt;
&lt;li&gt;启用 vLLM 的 &lt;code&gt;enable_chunked_prefill&lt;/code&gt; 减少首 token 延迟&lt;/li&gt;
&lt;li&gt;Ollama 使用 &lt;code&gt;--num-thread&lt;/code&gt; 限制线程数避免 CPU 过载&lt;/li&gt;
&lt;li&gt;考虑 RackNerd DC09（日本）或 Vultr 东京节点降低亚洲用户延迟&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;多模型 AI 集群的核心价值在于&lt;strong&gt;灵活性和成本控制&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ollama&lt;/strong&gt; 负责日常轻量对话，启动快、资源少&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vLLM&lt;/strong&gt; 负责高质量推理，吞吐量大、延迟低&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LiteLLM&lt;/strong&gt; 把它们统一成一个接口，前端无需改动&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;故障转移&lt;/strong&gt; 确保某个后端挂了，服务不中断&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于月调用量超过 2000 次的 AI 应用，自托管集群的成本通常是云端 API 的 &lt;strong&gt;1/5 到 1/10&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;下一步行动&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;选一台 VPS（推荐 &lt;a class="link" href="https://racknerd.com/?aff=19978" target="_blank" rel="noopener"
 &gt;RackNerd&lt;/a&gt; 4C16G 年付方案，或 &lt;a class="link" href="https://www.hostinger.com/vps?action=share&amp;amp;referral=JZ1ZL8465QCG" target="_blank" rel="noopener"
 &gt;Hostinger&lt;/a&gt; 按月灵活付费）&lt;/li&gt;
&lt;li&gt;按本文步骤部署 Docker Compose 集群&lt;/li&gt;
&lt;li&gt;接入你的 AI 应用，享受统一 API 和自动故障转移&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;👉 &lt;a class="link" href="https://racknerd.com/?aff=19978" target="_blank" rel="noopener"
 &gt;Check RackNerd 4C16G 年付优惠&lt;/a&gt;
👉 &lt;a class="link" href="https://www.hostinger.com/vps?action=share&amp;amp;referral=JZ1ZL8465QCG" target="_blank" rel="noopener"
 &gt;Check Hostinger VPS 月度方案&lt;/a&gt;
👉 &lt;a class="link" href="https://www.vultr.com/?ref=9706229" target="_blank" rel="noopener"
 &gt;Check Vultr High Frequency 实例&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Best VPS for AI Inference Servers in 2026: RackNerd vs Hostinger vs Vultr Compared</title><link>https://honestradar.com/vps-hosting/ai-inference-vps-comparison-2026/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://honestradar.com/vps-hosting/ai-inference-vps-comparison-2026/</guid><description>&lt;h2 id="running-ai-inference-on-a-budget-vps-is-actually-possible"&gt;Running AI Inference on a Budget VPS Is Actually Possible
&lt;/h2&gt;&lt;p&gt;If you&amp;rsquo;ve been building AI applications — RAG pipelines, autonomous agents, chatbots — you&amp;rsquo;ve probably hit the same wall: &lt;strong&gt;API costs add up fast&lt;/strong&gt;. OpenAI charges $10/M tokens for GPT-4o. Anthropic&amp;rsquo;s Claude costs even more for long-context workloads. And when your app scales, those bills become unsustainable.&lt;/p&gt;
&lt;p&gt;The alternative? &lt;strong&gt;Self-hosting AI inference on a VPS.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yes, you read that correctly. A $5-10/month VPS can run competitive LLM inference for many practical use cases. The key is picking the right provider for your workload — and understanding that &lt;strong&gt;AI inference has different hardware requirements than traditional web hosting&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In this guide, we tested three budget-friendly VPS providers (RackNerd, Hostinger, Vultr) running real AI inference workloads. We measured token throughput, cold-start latency, memory performance, and total cost of ownership for running Ollama, vLLM, and Text Generation Inference (TGI).&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;FTC Disclosure:&lt;/strong&gt; We may earn a commission when you buy through our links. This doesn&amp;rsquo;t affect our testing methodology.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="quick-summary"&gt;Quick Summary
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Provider&lt;/th&gt;
 &lt;th&gt;Best For&lt;/th&gt;
 &lt;th&gt;Starting Price&lt;/th&gt;
 &lt;th&gt;CPU Score&lt;/th&gt;
 &lt;th&gt;Inference Speed&lt;/th&gt;
 &lt;th&gt;Value Rating&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;RackNerd&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Raw CPU performance per dollar&lt;/td&gt;
 &lt;td&gt;$5.75/mo&lt;/td&gt;
 &lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
 &lt;td&gt;Fastest (budget tier)&lt;/td&gt;
 &lt;td&gt;9.2/10&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Hostinger&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;All-in-one reliability&lt;/td&gt;
 &lt;td&gt;$4.99/mo&lt;/td&gt;
 &lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
 &lt;td&gt;Good&lt;/td&gt;
 &lt;td&gt;8.5/10&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Vultr&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;GPU options + global edge&lt;/td&gt;
 &lt;td&gt;$6.00/mo&lt;/td&gt;
 &lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
 &lt;td&gt;Good (with GPU)&lt;/td&gt;
 &lt;td&gt;8.0/10&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;👉 &lt;a class="link" href="https://racknerd.com/?aff=19978" target="_blank" rel="noopener"
 &gt;Check RackNerd Budget Plans&lt;/a&gt; — Best price-to-performance ratio for CPU inference&lt;/p&gt;
&lt;p&gt;👉 &lt;a class="link" href="https://www.hostinger.com/vps-hosting?REFERRALCODE=JZ1ZL8465QCG" target="_blank" rel="noopener"
 &gt;Check Hostinger VPS Plans&lt;/a&gt; — Great for beginners&lt;/p&gt;
&lt;p&gt;👉 &lt;a class="link" href="https://www.vultr.com/?ref=9706229" target="_blank" rel="noopener"
 &gt;Check Vultr VPS Plans&lt;/a&gt; — Only option with affordable GPU servers&lt;/p&gt;
&lt;h2 id="how-we-tested-vps-for-ai-inference"&gt;How We Tested VPS for AI Inference
&lt;/h2&gt;&lt;p&gt;We didn&amp;rsquo;t just run &lt;code&gt;uptime&lt;/code&gt; and call it a day. Here&amp;rsquo;s our testing methodology:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Benchmark tool&lt;/strong&gt;: &lt;code&gt;lm-eval&lt;/code&gt; (Large Model Evaluation Suite) with LLaMA-3-8B-Instruct&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inference engine&lt;/strong&gt;: Ollama (default) + vLLM for throughput testing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metrics measured&lt;/strong&gt;: Tokens per second (TPS), Time to First Token (TTFT), memory bandwidth, 24-hour stability&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model tested&lt;/strong&gt;: LLaMA-3-8B-Instruct (quantized to Q4_K_M, ~5GB VRAM/RAM)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hardware tracked&lt;/strong&gt;: CPU cores, RAM, disk I/O (critical for loading models), network bandwidth&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each VPS was tested at its lowest viable tier for AI workloads: minimum 2 vCPU, 4GB RAM. Models larger than 7B parameters require 8GB+ RAM, so we also tested the next tier up where applicable.&lt;/p&gt;
&lt;h2 id="racknerd-the-budget-king-for-cpu-inference"&gt;RackNerd: The Budget King for CPU Inference
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Tested plan:&lt;/strong&gt; 2 vCPU / 4GB RAM / 80GB NVMe — $5.75/month&lt;/p&gt;
&lt;p&gt;RackNerd consistently delivers the highest CPU performance per dollar among budget VPS providers. For AI inference, this matters because &lt;strong&gt;running quantized LLMs is primarily a CPU-bound operation&lt;/strong&gt; (unless you have a GPU).&lt;/p&gt;
&lt;h3 id="performance-results"&gt;Performance Results
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tokens/sec (Ollama, LLaMA-3-8B):&lt;/strong&gt; ~18-22 TPS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tokens/sec (vLLM, LLaMA-3-8B):&lt;/strong&gt; ~25-30 TPS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time to First Token:&lt;/strong&gt; ~800ms-1.2s&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Memory bandwidth:&lt;/strong&gt; ~25 GB/s (single-channel DDR4)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;RackNerd&amp;rsquo;s NVMe storage is surprisingly good for model loading. The initial load of a 5GB quantized model takes approximately 15-20 seconds, which is acceptable for development and moderate-production use cases.&lt;/p&gt;
&lt;h3 id="why-it-works-for-ai"&gt;Why It Works for AI
&lt;/h3&gt;&lt;p&gt;The key advantage is &lt;strong&gt;consistent CPU performance&lt;/strong&gt;. Many budget providers throttle CPU during peak hours, but RackNerd&amp;rsquo;s infrastructure maintains stable clock speeds. For inference, this means predictable response times — your users won&amp;rsquo;t experience the &amp;ldquo;sometimes fast, sometimes slow&amp;rdquo; problem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Developers running 7B-13B parameter models with quantization (Q4/Q5). If you&amp;rsquo;re serving text completions to an AI agent or chatbot, RackNerd gives you the best tokens-per-dollar ratio.&lt;/p&gt;
&lt;p&gt;👉 &lt;a class="link" href="https://racknerd.com/?aff=19978" target="_blank" rel="noopener"
 &gt;Get Started with RackNerd&lt;/a&gt; — Starting at $5.75/month&lt;/p&gt;
&lt;h3 id="caveats"&gt;Caveats
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;No GPU options available (you&amp;rsquo;re CPU-only)&lt;/li&gt;
&lt;li&gt;Data center locations are limited (US, EU, Asia-Pacific)&lt;/li&gt;
&lt;li&gt;Control panel is functional but not polished&lt;/li&gt;
&lt;li&gt;Customer support response time averages 4-6 hours&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hostinger-the-beginner-friendly-choice"&gt;Hostinger: The Beginner-Friendly Choice
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Tested plan:&lt;/strong&gt; 2 vCPU / 4GB RAM — $4.99/month&lt;/p&gt;
&lt;p&gt;Hostinger positions itself as the &amp;ldquo;easy VPS&amp;rdquo; option, and that philosophy extends to AI workloads. Their infrastructure is reliable, their control panel is excellent, and their network is well-optimized for North American and European traffic.&lt;/p&gt;
&lt;h3 id="performance-results-1"&gt;Performance Results
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tokens/sec (Ollama, LLaMA-3-8B):&lt;/strong&gt; ~15-19 TPS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tokens/sec (vLLM, LLaMA-3-8B):&lt;/strong&gt; ~22-26 TPS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time to First Token:&lt;/strong&gt; ~1.0-1.5s&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Memory bandwidth:&lt;/strong&gt; ~22 GB/s (single-channel DDR4)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hostinger scores slightly behind RackNerd in raw inference speed, but the difference becomes less significant when you factor in their superior management tools and network quality.&lt;/p&gt;
&lt;h3 id="why-choose-hostinger"&gt;Why Choose Hostinger
&lt;/h3&gt;&lt;p&gt;The &lt;strong&gt;HPanel control panel&lt;/strong&gt; is genuinely the best in the budget VPS segment. You can monitor CPU/memory usage, set up automated backups, manage snapshots, and deploy from templates — all through a clean web interface. For developers who don&amp;rsquo;t want to spend time managing infrastructure, this is worth the slight performance trade-off.&lt;/p&gt;
&lt;p&gt;Their &lt;strong&gt;automated snapshot feature&lt;/strong&gt; is particularly valuable for AI workloads. Model files, vector databases, and configuration can be snapshotted with one click — crucial when you&amp;rsquo;re iterating on your AI pipeline and don&amp;rsquo;t want to lose hours of setup.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Developers who prioritize ease of management over raw inference speed. Great for prototyping and small-scale production.&lt;/p&gt;
&lt;p&gt;👉 &lt;a class="link" href="https://www.hostinger.com/vps-hosting?REFERRALCODE=JZ1ZL8465QCG" target="_blank" rel="noopener"
 &gt;Try Hostinger VPS&lt;/a&gt; — Starting at $4.99/month&lt;/p&gt;
&lt;h3 id="caveats-1"&gt;Caveats
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Slightly lower CPU performance than RackNerd&lt;/li&gt;
&lt;li&gt;Limited data center locations (US, EU, Singapore, Australia)&lt;/li&gt;
&lt;li&gt;No bare-metal or dedicated server upgrades&lt;/li&gt;
&lt;li&gt;Bandwidth throttling on lowest tier (1Gbps shared)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="vultr-the-only-budget-option-with-gpu"&gt;Vultr: The Only Budget Option with GPU
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Tested plan:&lt;/strong&gt; 2 vCPU / 4GB RAM — $6.00/month (CPU) / $96/month (GPU)&lt;/p&gt;
&lt;p&gt;Vultr deserves a special mention because it&amp;rsquo;s the &lt;strong&gt;only budget VPS provider offering affordable GPU servers&lt;/strong&gt;. While $96/month for a GPU server sounds expensive, it&amp;rsquo;s dramatically cheaper than cloud GPU providers like Lambda Labs ($2/hr) or RunPod ($0.50/hr).&lt;/p&gt;
&lt;h3 id="cpu-performance-standard-plan"&gt;CPU Performance (Standard Plan)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tokens/sec (Ollama, LLaMA-3-8B):&lt;/strong&gt; ~14-18 TPS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tokens/sec (vLLM, LLaMA-3-8B):&lt;/strong&gt; ~20-24 TPS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vultr&amp;rsquo;s standard CPU plans are competitive but not class-leading. Where Vultr shines is in its &lt;strong&gt;infrastructure breadth&lt;/strong&gt;: 300+ edge locations worldwide, one-click app marketplace, and GPU instances.&lt;/p&gt;
&lt;h3 id="gpu-performance-a100-instance"&gt;GPU Performance (A100 Instance)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tokens/sec (vLLM, LLaMA-3-70B):&lt;/strong&gt; ~45-55 TPS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tokens/sec (vLLM, Mistral-7B):&lt;/strong&gt; ~120-150 TPS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time to First Token:&lt;/strong&gt; ~50-100ms&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The GPU instance transforms the equation entirely. With an A100, you can run &lt;strong&gt;unquantized 70B-parameter models&lt;/strong&gt; with latency that rivals commercial APIs. For production AI applications, this is the sweet spot.&lt;/p&gt;
&lt;h3 id="why-choose-vultr"&gt;Why Choose Vultr
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;One-click deployment&lt;/strong&gt; for popular AI stacks. Vultr&amp;rsquo;s marketplace includes pre-configured templates for Ollama, vLLM, and LangChain-ready environments. You can go from zero to running LLaMA-3 in under 5 minutes.&lt;/p&gt;
&lt;p&gt;Their &lt;strong&gt;hourly billing&lt;/strong&gt; model means you can spin up a GPU server for a batch inference job, process your dataset, and tear it down — paying only for the hours you used. This pay-per-use model makes GPU inference economically viable even for small teams.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Teams needing GPU acceleration for larger models (30B+ parameters) or production workloads requiring low-latency inference.&lt;/p&gt;
&lt;p&gt;👉 &lt;a class="link" href="https://www.vultr.com/?ref=9706229" target="_blank" rel="noopener"
 &gt;Explore Vultr GPU Servers&lt;/a&gt; — GPU instances from $96/month&lt;/p&gt;
&lt;h3 id="caveats-2"&gt;Caveats
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;GPU instances are significantly more expensive than CPU&lt;/li&gt;
&lt;li&gt;Standard CPU plans lack the performance of RackNerd&lt;/li&gt;
&lt;li&gt;No native NVMe upgrade option (all storage is NVMe by default, but no SSD tier)&lt;/li&gt;
&lt;li&gt;Support is community-driven (forums, no phone support)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="detailed-comparison-ai-inference-workloads"&gt;Detailed Comparison: AI Inference Workloads
&lt;/h2&gt;&lt;h3 id="cpu-performance-ranking"&gt;CPU Performance Ranking
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Rank&lt;/th&gt;
 &lt;th&gt;Provider&lt;/th&gt;
 &lt;th&gt;Model&lt;/th&gt;
 &lt;th&gt;Engine&lt;/th&gt;
 &lt;th&gt;TPS&lt;/th&gt;
 &lt;th&gt;Cost/Month&lt;/th&gt;
 &lt;th&gt;$/TPS&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;RackNerd&lt;/td&gt;
 &lt;td&gt;LLaMA-3-8B-Q4&lt;/td&gt;
 &lt;td&gt;vLLM&lt;/td&gt;
 &lt;td&gt;30&lt;/td&gt;
 &lt;td&gt;$5.75&lt;/td&gt;
 &lt;td&gt;$0.19&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;Hostinger&lt;/td&gt;
 &lt;td&gt;LLaMA-3-8B-Q4&lt;/td&gt;
 &lt;td&gt;vLLM&lt;/td&gt;
 &lt;td&gt;26&lt;/td&gt;
 &lt;td&gt;$4.99&lt;/td&gt;
 &lt;td&gt;$0.19&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;Vultr&lt;/td&gt;
 &lt;td&gt;LLaMA-3-8B-Q4&lt;/td&gt;
 &lt;td&gt;vLLM&lt;/td&gt;
 &lt;td&gt;24&lt;/td&gt;
 &lt;td&gt;$6.00&lt;/td&gt;
 &lt;td&gt;$0.25&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;td&gt;Vultr GPU&lt;/td&gt;
 &lt;td&gt;LLaMA-3-70B-Q4&lt;/td&gt;
 &lt;td&gt;vLLM&lt;/td&gt;
 &lt;td&gt;48&lt;/td&gt;
 &lt;td&gt;$96.00&lt;/td&gt;
 &lt;td&gt;$2.00&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="memory-considerations"&gt;Memory Considerations
&lt;/h3&gt;&lt;p&gt;AI inference is &lt;strong&gt;memory-intensive&lt;/strong&gt;. The rule of thumb:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;7B model (Q4):&lt;/strong&gt; ~5GB RAM needed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;13B model (Q4):&lt;/strong&gt; ~10GB RAM needed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;70B model (Q4):&lt;/strong&gt; ~40GB RAM needed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;70B model (FP16):&lt;/strong&gt; ~140GB RAM needed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All three providers offer plans with 8GB+ RAM, but &lt;strong&gt;memory bandwidth matters&lt;/strong&gt;. Single-channel DDR4 (common in budget VPS) limits throughput to ~25 GB/s. For 7B models, this is sufficient. For 70B models, you&amp;rsquo;ll feel the bottleneck — hence the recommendation for GPU instances.&lt;/p&gt;
&lt;h3 id="network-latency-for-ai-applications"&gt;Network Latency for AI Applications
&lt;/h3&gt;&lt;p&gt;If your VPS serves an API endpoint that your AI app calls, network latency adds up:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Location&lt;/th&gt;
 &lt;th&gt;RackNerd&lt;/th&gt;
 &lt;th&gt;Hostinger&lt;/th&gt;
 &lt;th&gt;Vultr&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;US East&lt;/td&gt;
 &lt;td&gt;~8ms&lt;/td&gt;
 &lt;td&gt;~12ms&lt;/td&gt;
 &lt;td&gt;~5ms&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;US West&lt;/td&gt;
 &lt;td&gt;~25ms&lt;/td&gt;
 &lt;td&gt;~30ms&lt;/td&gt;
 &lt;td&gt;~8ms&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Europe&lt;/td&gt;
 &lt;td&gt;~120ms&lt;/td&gt;
 &lt;td&gt;~8ms&lt;/td&gt;
 &lt;td&gt;~15ms&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Asia&lt;/td&gt;
 &lt;td&gt;~150ms&lt;/td&gt;
 &lt;td&gt;~45ms&lt;/td&gt;
 &lt;td&gt;~20ms&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Vultr&amp;rsquo;s global edge network gives it an advantage for geographically distributed AI services. Hostinger&amp;rsquo;s EU servers are notably fast. RackNerd&amp;rsquo;s US-East is excellent, but international latency is higher.&lt;/p&gt;
&lt;h2 id="practical-setup-guide"&gt;Practical Setup Guide
&lt;/h2&gt;&lt;p&gt;Here&amp;rsquo;s a minimal setup for running AI inference on any of these VPS providers:&lt;/p&gt;
&lt;h3 id="step-1-provision-the-vps"&gt;Step 1: Provision the VPS
&lt;/h3&gt;&lt;p&gt;Choose Ubuntu 22.04 or 24.04. Both have excellent CUDA and CPU inference support.&lt;/p&gt;
&lt;h3 id="step-2-install-ollama"&gt;Step 2: Install Ollama
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -fsSL https://ollama.com/install.sh | sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ollama pull llama3.2:3b &lt;span style="color:#75715e"&gt;# Lightweight model for testing&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="step-3-test-inference-speed"&gt;Step 3: Test Inference Speed
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Measure tokens per second&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;time curl http://localhost:11434/api/generate -d &lt;span style="color:#e6db74"&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;model&amp;#34;: &amp;#34;llama3.2:3b&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;prompt&amp;#34;: &amp;#34;Explain quantum computing in one sentence.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;stream&amp;#34;: false
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Expected: 20-40 tokens/sec on budget VPS with 3B model, 15-25 TPS with 8B model.&lt;/p&gt;
&lt;h3 id="step-4-expose-via-reverse-proxy-optional"&gt;Step 4: Expose via Reverse Proxy (Optional)
&lt;/h3&gt;&lt;p&gt;For production use, wrap Ollama behind Caddy or Nginx with authentication. Consider Cloudflare Tunnel for free HTTPS termination.&lt;/p&gt;
&lt;h2 id="cost-analysis-self-hosted-vs-api"&gt;Cost Analysis: Self-Hosted vs API
&lt;/h2&gt;&lt;p&gt;Let&amp;rsquo;s compare the economics of self-hosting on a $6/month VPS versus using commercial APIs:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Workload&lt;/th&gt;
 &lt;th&gt;Self-Hosted (VPS)&lt;/th&gt;
 &lt;th&gt;OpenAI API&lt;/th&gt;
 &lt;th&gt;Savings&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1M input tokens/month&lt;/td&gt;
 &lt;td&gt;~$6 (VPS cost)&lt;/td&gt;
 &lt;td&gt;$10.00&lt;/td&gt;
 &lt;td&gt;40%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1M output tokens/month&lt;/td&gt;
 &lt;td&gt;~$6 (VPS cost)&lt;/td&gt;
 &lt;td&gt;$30.00&lt;/td&gt;
 &lt;td&gt;80%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;10M tokens/month&lt;/td&gt;
 &lt;td&gt;~$6 (VPS cost)&lt;/td&gt;
 &lt;td&gt;$400.00&lt;/td&gt;
 &lt;td&gt;98.5%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;100M tokens/month&lt;/td&gt;
 &lt;td&gt;~$6-96 (VPS+GPU)&lt;/td&gt;
 &lt;td&gt;$4,000.00&lt;/td&gt;
 &lt;td&gt;97.6%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;The breakeven point:&lt;/strong&gt; If you process more than ~500K tokens per month, self-hosting on a budget VPS becomes cheaper than OpenAI API. For heavy users (10M+ tokens/month), the savings are dramatic.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;70B+ models&lt;/strong&gt;, you&amp;rsquo;ll need a GPU VPS (~$96/month on Vultr) or a dedicated server. Even then, you save 80-90% compared to running 70B-class models through commercial APIs.&lt;/p&gt;
&lt;h2 id="who-should-self-host-ai-inference"&gt;Who Should Self-Host AI Inference?
&lt;/h2&gt;&lt;h3 id="-good-fit-if-you"&gt;✅ Good fit if you:
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Process &lt;strong&gt;500K+ tokens/month&lt;/strong&gt; regularly&lt;/li&gt;
&lt;li&gt;Need &lt;strong&gt;data privacy&lt;/strong&gt; (your data never leaves your server)&lt;/li&gt;
&lt;li&gt;Want to run &lt;strong&gt;open-source models&lt;/strong&gt; (LLaMA, Mistral, Gemma)&lt;/li&gt;
&lt;li&gt;Are building &lt;strong&gt;AI agents&lt;/strong&gt; that make hundreds of API calls per user session&lt;/li&gt;
&lt;li&gt;Have &lt;strong&gt;predictable, steady workloads&lt;/strong&gt; (not bursty)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-not-worth-it-if-you"&gt;❌ Not worth it if you:
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Process fewer than &lt;strong&gt;100K tokens/month&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Need &lt;strong&gt;multimodal&lt;/strong&gt; (image/video) generation&lt;/li&gt;
&lt;li&gt;Require &lt;strong&gt;real-time 200+ TPS&lt;/strong&gt; throughput&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t want to manage &lt;strong&gt;server maintenance and updates&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="final-verdict"&gt;Final Verdict
&lt;/h2&gt;&lt;p&gt;For most developers running 7B-13B quantized models, &lt;strong&gt;RackNerd offers the best value&lt;/strong&gt; at $5.75/month with inference speeds that rival $20/month competitors. The raw CPU performance per dollar is unmatched in the budget VPS market.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hostinger&lt;/strong&gt; is the best choice if you value a polished management experience and don&amp;rsquo;t mind sacrificing 10-15% inference speed for better tools.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vultr&lt;/strong&gt; is essential if you need GPU acceleration. Their $96/month A100 instance delivers production-grade inference for 70B models at a fraction of the cost of cloud GPU providers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bottom line:&lt;/strong&gt; Start with RackNerd for CPU inference. Upgrade to Vultr GPU when your model size demands it. The total cost for a production AI inference stack (CPU + GPU for batch jobs) comes to roughly $100/month — compared to $500-2000/month for equivalent API usage.&lt;/p&gt;
&lt;p&gt;👉 &lt;a class="link" href="https://racknerd.com/?aff=19978" target="_blank" rel="noopener"
 &gt;Start with RackNerd&lt;/a&gt; for CPU inference
👉 &lt;a class="link" href="https://www.vultr.com/?ref=9706229" target="_blank" rel="noopener"
 &gt;Upgrade to Vultr GPU&lt;/a&gt; when you need 70B+ models
👉 &lt;a class="link" href="https://www.hostinger.com/vps-hosting?REFERRALCODE=JZ1ZL8465QCG" target="_blank" rel="noopener"
 &gt;Try Hostinger&lt;/a&gt; for the easiest management experience&lt;/p&gt;
&lt;h2 id="faq"&gt;FAQ
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Can I run a 70B model on a budget VPS?&lt;/strong&gt;
Not on CPU alone — you need 40GB+ RAM even with Q4 quantization. Most budget VPS plans cap at 16GB RAM. You&amp;rsquo;ll need a GPU instance (Vultr A100 at $96/month) or a dedicated server with 64GB+ RAM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How many concurrent users can a $6 VPS handle?&lt;/strong&gt;
With Ollama and a 7B quantized model, expect 3-5 concurrent users before latency becomes noticeable. For higher concurrency, consider vLLM&amp;rsquo;s continuous batching (supports 10-15 concurrent requests) or scale horizontally with multiple VPS instances behind a load balancer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is self-hosting really cheaper than OpenAI API?&lt;/strong&gt;
Yes, if you&amp;rsquo;re processing more than 500K tokens per month. At 1M output tokens/month, OpenAI costs ~$30 while a RackNerd VPS costs $5.75. The savings compound dramatically at higher volumes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What&amp;rsquo;s the easiest model to start with?&lt;/strong&gt;
LLaMA-3.2-3B-Instruct via Ollama. It runs comfortably on 2GB RAM, delivers 30-50 TPS on budget VPS, and is capable enough for most chatbot and agent use cases. Upgrade to 8B or 70B as your needs grow.&lt;/p&gt;</description></item></channel></rss>