Uber分享了 Ceilometer 的细节,这是他们内部的一个自适应基准测试框架,旨在评估应用级指标之外的基础设施性能。该系统能够利用接近生产环境负载的可重复的基准测试,协助 Uber 认证新增的云服务单元、验证基础设施变更并衡量效率提升举措。随着不同云服务商以及硬件代际间基础设施异构性的不断增强,Uber 构建了 Ceilometer,希望借此在不同的环境中提供一致的数据驱动的性能信号。
在 Uber 这样的规模下,基础设施基准测试一直以来还是一个分散的手动过程。工程师们经常依赖一次性脚本,单独运行测试,并通过电子表格来比较结果,这使得重现结果或将不同团队之间的性能指标关联起来变得困难。Ceilometer 用一个集中化的平台取代了这种方法,它能够自动编排基准测试、执行测试、摄取结果并进行分析,这样就可以在不同的服务器、工作负载和环境之间进行标准化比较。
Ceilometer 采用分布式系统架构,可在专用机器上协调基准测试的执行。为了反映真实工作负载的行为,测试以并行方式运行,原始输出存储于持久化 Blob 存储中。测试结果经过验证及标准化处理后会被导入 Uber 的集中式数据仓库,然后他们就可以在该仓库中和生产指标一起进行查询分析。据 Uber 工程师介绍,该设计使其能够通过统一的数据模型识别性能退化及配置低效问题或硬件层面的差异。

Ceilometer 架构图(图片来源:Uber博客)
该框架支持广泛的工作负载类型。要反映 CPU、内存、网络和存储的性能,可以使用合成基准测试,如SpecCPU2017、SPECjbb2015、NetPerf和FIO。对于有状态系统,Ceilometer 集成了 Uber 的Odin平台,可以在真实条件下对数据库工作负载进行基准测试。对于无状态服务,则可以使用 Uber 的Ballast框架进行评估,该框架提供了可以模拟生产流量模式的自适应负载测试。
该框架的一个主要应用场景是服务器规格和云服务单元(SKU)认证。硬件供应商和云服务提供商可以在自己的环境中运行 Ceilometer 的基准测试套件并共享结果,这样 Uber 就可以在新 SKU 上线前评估预期性能。另一个关键的应用场景是基础设施变更验证,那些有针对性的基准测试有助于隔离由软件升级、内核更改、固件更新或配置调整引入的回归。Ceilometer 的测试结果可以跨时段、环境和工作负载类型进行比较,为工程师提供了一个更清晰的视图,让他们可以了解基础设施变更对系统行为产生了什么样的影响,而不仅仅是通过表层的应用级指标。
在LinkedIn的一篇博文中,Uber 基础设施团队高级工程经理和平台架构师Nav Kankani这样写道:
Uber 的自适应基准测试框架可以模拟我们的生产工作负载,指导云平台决策。通过呈现无状态、有状态、批处理和 AI/ML 领域的多样化工作负载,Ceilometer 大大方便了软硬件协同设计探索,并推动了我们整个团队的效率提升。
随着 Uber 基础设施的不断发展,为了获得更深入、更主动的洞察,Uber 正在对 Ceilometer 进行扩展。已经规划好的增强功能包括:集成 AI 和机器学习,用于预测回归、识别根本原因和优化资源规模;支持更广泛的生态系统,包括新兴技术栈和基础设施范式;高级异常检测,用于更快地发现意外的性能偏差;组件级的利用率指标,提供对 CPU、内存、存储和网络行为的细粒度可见性。Uber 工程师还计划利用该框架进行金丝雀持续验证测试,定期自动运行基准测试,当性能指标超出阈值时提醒团队,为更快、更可靠的基础设施决策提供支持。
原文链接:
https://www.infoq.com/news/2025/12/uber-infrastructure-benchmarking/





