olla
高性能本地LLM推理负载均衡器,统一管理Ollama/vLLM/SGLang等多后端路由与故障切换
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
高性能本地LLM推理负载均衡器,统一管理Ollama/vLLM/SGLang等多后端路由与故障切换
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否有这样的经历:本地部署了 Ollama,又装了 LM Studio,还在跑 vLLM,结果每个应用都要单独配置不同的 API 地址?换模型要改配置,某个后端挂了要手动切换,明明是同一批 GPU 资源却无法统一调度。Olla 正是为解决这些问题而生——它是一个高性能的 LLM 推理负载均衡器,用单一二进制文件把多个推理后端(Ollama、vLLM、SGLang、LM Studio 等)统一管理起来,让你的 AI 应用只需要对接一个端点。## 背景:为什么需要 LLM 代理?
随着大语言模型走向普及,越来越多的开发者和企业在本地部署 LLM 推理服务。与调用云端 API 相比,本地部署意味着数据不出内网、成本可控、响应可控。但本地推理也带来了新的挑战:单个后端实例的处理能力有限,多个模型需要灵活切换,后端节点随时可能因显存不足或 GPU 故障而中断。
传统方案是手动管理多个端点的 IP 地址,或者用 Nginx 做简单的 HTTP 反向代理。但这些方案缺乏对 LLM 请求特性的感知——LLM 请求有独特的流式响应(Streaming)机制,有 KV-Cache 上下文关联,普通的四层负载均衡器无法感知这些语义层面的信息。
Olla 的作者 Thushan Fernando 是 TensorFoundry 的创始人,长期从事 AI 基础设施产品开发。他在 2026 年 5 月发表博文,详细阐述了在本地 GPU 集群中引入 LLM 专用代理的必要性,这也成为 Olla 诞生的直接契机。项目采用 Apache 2.0 开源许可,由 TensorFoundry 提供商业支持。## 核心功能:不止于代理
智能负载均衡是 Olla 的核心能力。它支持基于优先级的路由策略,可以为不同的后端节点设置权重,流量自动分配。当某个后端节点响应变慢或不可用时,Olla 会自动熔断(Circuit Breaker),将请求透明切换到健康节点,全程对调用方无感知。KV-Cache 亲和路由(Sticky Sessions)更进一步——多轮对话会被固定到同一个后端,避免 Cache Miss 导致的上下文丢失。
模型统一目录是另一个关键特性。每个推理后端往往只知道自己本地的模型列表,Olla 提供了跨后端的统一模型发现机制。通过 端点,你可以一次性查询所有已注册后端的可用模型,不管它们跑在 Ollama、LM Studio 还是 vLLM 上。模型过滤(Filtering)支持 Glob 模式,可以按前缀、正则精准匹配想要路由的模型。
双代理引擎架构体现了性能与可维护性的权衡。Olla 提供两套代理引擎:轻量的 Sherpa 引擎适合简单场景,高性能的 Olla 引擎(默认)则内置连接池、熔断器、原子计数器等高级特性,保障高并发下的亚毫秒级路由延迟。
图1:Olla 功能架构图,展示了模型统一、负载均衡、熔断恢复的完整链路
Olla 源码完全采用 Go 语言编写,要求 Go 1.24.0 以上版本。选用 Go 既是性能考量——goroutine 天生的并发模型非常适合处理 LLM 请求的长连接和流式响应,也是运维考量——Go 编译产物是单一静态二进制,部署时无需安装运行时,一行命令即可启动。
从项目结构看,代码被划分为清晰的模块层次。 目录下, 负责路由注册表和路由策略, 包含 14 个子模块,分别处理负载均衡(balancer)、协议转换(converter/translator)、健康检查(health)、安全认证(security)、指标统计(metrics)等职责。 目录提供应用生命周期管理和 HTTP 处理器, 处理 YAML 配置文件加载与校验。外部依赖方面,使用了 (跨域资源共享)、(动态表达式解析,用于路由规则配置)、(高性能 JSON 路径查询)等成熟开源库。
主程序入口 设计了完整的优雅关闭(Graceful Shutdown)流程,监听 SIGINT/SIGTERM 信号,先停止接受新请求,再等待现有请求处理完毕,最后输出 NerdStats(内存分配、GC 统计、goroutine 健康状态),便于生产环境问题排查。日志系统支持结构化输出(slog)和日志文件轮转(lumberjack),并发安全。
图2:Olla 官方品牌 Banner,展示了支持的多种推理后端
Olla 的部署门槛极低。Docker 用户只需要一行命令:
服务默认监听 40114 端口,提供 OpenAI 兼容 API 端点()。你的应用只需把 替换成 ,无需任何代码改造。Dockerfile 采用极简的 Alpine 镜像,编译产物通过多阶段构建嵌入容器,总镜像体积控制在极小范围内。
对于 docker-compose 用户,项目提供了完整示例,包括健康检查(healthcheck)、日志持久化、网络隔离配置。如果需要更精细的控制,可以挂载本地配置文件()覆盖默认参数,配置项涵盖端点注册、路由策略、认证信息、日志级别等各个方面。
需要注意的是,Olla 本身不提供 Web 管理界面,所有交互通过配置文件和 API 完成。它是一个纯 API 网关/代理,配套的监控主要依赖响应头中的请求追踪信息(X-Olla-Request-ID、X-Olla-Backend 等)和结构化日志。## 上手门槛与局限性
对于已经有本地 LLM 推理经验的用户(Ollama/LM Studio 用户),Olla 的上手难度为"极简"。配置端点只需要在 YAML 里声明地址和类型,路由规则通过表达式语言动态配置,支持热加载。
不过,Olla 也有其局限性。它不负责模型的部署和管理——你必须先自行部署好 Ollama、vLLM 等后端,Olla 只是一个请求路由层。对于需要 GPU 编排、模型版本管理、训练任务调度的场景,应该结合 GPUStack 或 Kubernetes 使用,而非用 Olla 替代。
另外,Olla 目前不支持向量数据库(Vector DB)代理,也不提供 Token 计费和用量配额控制,这些功能在商业化场景中通常是刚需。作者在 README 中也明确提到,大规模 GPU 集群和企业数据中心场景应使用 TensorFoundry FoundryOS 商业产品。
图3:Olla CLI 运行演示,展示路由规则配置和请求追踪
Olla 的出现填补了本地 LLM 推理领域的一个空白——在 Ollama 级别的简单部署和 Kubernetes 级别的复杂管理之间,提供了一个轻量但专业的中间层。它不是要与 LiteLLM 竞争(LiteLLM 强在 100+ 云端 API 的统一封装),而是在本地推理场景做到了极致:低至 256MB 内存占用、亚毫秒级路由延迟、无依赖单二进制。
从技术趋势看,2026 年本地 LLM 推理正在从"玩具项目"走向"生产系统"。Olla 代表了一种务实的技术路线:用成熟的网络编程手段(Go + HTTP 反向代理模式)解决 LLM 推理的可靠性问题,而非引入过于复杂的 AI 原生概念。对于 AI 爱好者来说,可以用 Olla 轻松管理自己的多模型推理环境;对于开发者来说,可以用它作为 AI 应用的后端基础设施,专注业务逻辑而非网络细节。