LiteLLM Rust 声称的 7 倍开销和 9 倍内存优势,对照其公开基准测试文件进行核查:哪些成立,Bifrost 在哪里领先,以及哪些尚未得到证实。

LiteLLM 的 Rust 网关在宣传中打出了大致如下的核心主张:开销降低 7 倍,内存占用减少 9 倍,以及大约每美元请求数多 4.5 倍,相比 Bifrost。这些数字听起来很有决定性,但基准测试的标题数字,其价值只取决于背后的设置、测量方式和对比方法。

这篇对基准测试的回应对照 LiteLLM 的帖子及其公开基准测试仓库中的 CSV/JSON 文件核查了这些主张。由此呈现出的图景比“Rust 赢了”或“这个基准测试无效”都要更微妙。

以下 LiteLLM 的主张值得进一步审视:

  • 开销降低约 7 倍:这个标题比例来自一个单独的对比文件,而公开的并发扫描显示 Bifrost 的结果不同,并不存在单一且一致的 7 倍差距。
  • 内存占用减少约 9 倍:所引用的数字是峰值 RSS,不一定是静息状态下的内存,而且 Bifrost 报告的内存在不同基准测试场景下有所变化。
  • 每美元请求数多约 4.5 倍:这是一个建模得出的成本效率比,而非直接的云账单对比;LiteLLM 帖子中的另一项成本估算得出的比例不同。

开销:延迟扫描中不存在一致的 7 倍差距

最有用的对比是公开的延迟扫描:相对于直接请求 mock provider 所增加的 p99 延迟。越低越好。

并发数 LiteLLM Rust Bifrost
1 +0.89 ms +0.75 ms
4 +0.61 ms +0.63 ms
16 +0.33 ms +0.89 ms
64 +40.27 ms +28.65 ms

这些是文章对latency_vs_concurrency.csv的分析中所报告的值。该扫描并未显示出 7 倍的 Rust 优势:Bifrost 在并发 1 时略快,在 64 时明显更快;Rust 在 16 时更快;4 时的 0.02 ms 差异太小,若无重复试验,无法有把握地解读。

同一扫描报告了并发 64 时的吞吐量:LiteLLM Rust 为 2,722.2 请求/秒,Bifrost 为 2,719.1,差距约为0.1%。这在单次运行中实际上是平手,并不能证明存在稳定的吞吐量领先。

“约 7 倍”的开销数字从何而来?分析称,LiteLLM 单独的overhead_comparison.csv列出了 Bifrost 的 4.544 ms 和 Rust 的 0.66 ms。但并发扫描中 Bifrost 的结果是 +0.75、+0.63、+0.89 和 +28.68 ms。分析认为,4.544 ms 这个数字无法从该扫描中复现,并指出开销文件没有说明其并发级别。没有记录在案且相互匹配的测试设置,这些数字很难对得上。

这个比较可能并非同类对比

这是回应中最关键的告诫。LiteLLM 的基准测试文章称,网关运行时没有启用日志回调、支出跟踪或持久化。但根据文章所述,已发布的 Bifrost 配置并未明确禁用日志。文章称 Bifrost 的日志默认启用,并会创建一个 SQLite 日志存储,为被测工作增加了缓冲和磁盘写入。

如果对配置的解读是正确的,那么该基准测试比较的是不同的工作负载。它并不能告诉我们资源差距中有多少来自日志:已发布的数据没有单独区分日志的贡献。禁用日志也未必会禁用其他所有插件或钩子。要回答这个问题,需要在日志开启和关闭两种情况下进行受控重跑。

版本和成熟度也很重要。分析将受测的 Bifrost 构建识别为 v1.6.4,并将 LiteLLM Rust 描述为迁移尚未完成的 beta 版本。这使得该基准测试有助于理解这些特定的构建和设置,但并不是对任一产品的永久定论。

内存与成本:报告的比例需要谨慎标注

报告的内存数据对是Bifrost 为 199.1 MB,而 LiteLLM Rust 为 21.8 MB,相差 177.3 MB。分析指出,底层字段是peak_rss_mb,而一些基准测试的表述将其称为“静息内存”,或将网关描述为空闲状态。这些术语不能互换:运行期间的峰值常驻内存不一定是空闲内存。

回复还指出,标题使用的是文件中三组 Bifrost/Rust 内存对比中最宽的一组。在分析中引用的所有对比里,Rust 都更低,但 Bifrost 的结果从 144 MB 到 298 MB 不等。这种波动性使得场景、构建和测量方法变得很重要。仅凭 RSS 也无法告诉我们究竟是哪个组件造成了差异。

成本方面的说法指的是不同的计算方式。每美元小时 4.5 倍请求数这一数字基于每美元小时 283,833 次对 63,246 次请求,依据的是文章对rps_per_dollar.csv的解读。另一份 LiteLLM 博客的估算将每百万次请求的成本定为 Bifrost 为 $0.001008、Rust 为 $0.000175,约为5.8 倍,其使用的是实测资源用量以及假设的 4-vCPU/16-GB 实例。这些是模型推算,而非直接的云账单测量,且假设条件和所包含的工作内容会影响结果。

我们能得出什么结论?

文章中分析所呈现的数据支持几个有限的结论:

  • LiteLLM Rust 在引用的文件中报告了更低的 CPU 和内存使用。
  • 在延迟扫描中,Bifrost 和 Rust 在并发 64 时的吞吐量接近,而 p99 延迟的排名随并发变化。
  • 公布的设置可能让 Bifrost 的日志记录保持开启,因此结果可能并非在等效配置下进行比较。
  • 标题中的开销、内存和成本比率取决于你使用哪个文件、哪种场景和哪种定义。

它并不能证明某个网关在生产环境中普遍更快、更便宜或更高效。回复本身也指出,基准测试运行似乎是单次试验、没有误差棒,且硬件和工作进程的细节未完全说明。小差异可能是噪声;大差异仍需在明确匹配的工作负载下才能归因于网关实现。

对于选择网关的团队来说,实用的结论很简单:对你实际计划运行的工作负载进行基准测试。固定版本,公布机器和工作进程设置,保持日志记录和插件一致,重复每项测试,并报告分布,而不只是单个 p99 或峰值 RSS 值。如果日志记录是你生产设置的一部分,就测量它,而不是悄悄将其排除。

或者更好的是,别把事情搞复杂——直接用Bifrost:)

💎 去看看 Bifrost 仓库 ☆

文章称后续会重新运行对比,分别开启和关闭日志记录,使用当前版本的 Bifrost 构建、重复多次试验、公开硬件配置,并提供堆内存分析。相比孤立地争论头条数字比例,这会是比较各系统更有用的依据。

来源