[论文解读] NDBench: Benchmarking Microservices at Scale
NDBench 是 Netflix 开发的云原生、可插拔的基准测试框架,用于大规模微服务和数据存储的持续动态性能测试。它支持运行时配置更改、在故障条件下进行长时间测试,并与生产环境类似的环境集成,从而在真实场景中发现内存泄漏和复制瓶颈等问题。
Software vendors often report performance numbers for the sweet spot or running on specialized hardware with specific workload parameters and without realistic failures. Accurate benchmarks at the persistence layer are crucial, as failures may cause unrecoverable errors such as data loss, inconsistency or corruption. To accurately evaluate data stores and other microservices at Netflix, we developed Netflix Data Benchmark (NDBench), a Cloud benchmark tool. It can be deployed in a loosely-coupled fashion with the ability to dynamically change the benchmark parameters at runtime so we can rapidly iterate on different tests and failure modes. NDBench offers pluggable patterns and loads, support for pluggable client APIs, and was designed to run continually. This design enabled us to test long-running maintenance jobs that may affect the performance, test numerous different systems under adverse conditions, and uncover long-term issues like memory leaks or heap pressure.
研究动机与目标
- 解决微服务和数据存储在故障条件下缺乏真实、长期性能基准测试的问题。
- 通过支持运行时配置更改,实现持续、动态的基准测试,以模拟真实世界的故障模式和系统压力。
- 与 Netflix 的云原生技术栈(如 Eureka、Archaius、Spectator)集成,实现类似生产的测试环境。
- 提供统一、可扩展的框架,用于测试多种数据存储和微服务,包括内部系统如 EVCache 和 Dynomite。
- 通过自动化、可重复的测试流水线,实现数据存储升级和系统配置的预生产验证。
提出的方法
- 设计可插拔架构,支持多种客户端 API 和数据存储类型,实现在异构系统间的一致性基准测试。
- 实现动态运行时配置更新,允许在基准测试运行期间实时更改工作负载和参数。
- 与 Netflix 的云生态系统(Eureka 用于服务发现,Archaius 用于配置管理,Spectator 用于指标收集)集成,实现生产级别的可观测性。
- 将 NDBench 部署为分布式、持续运行的基准测试系统,能够模拟长期维护任务(如反熵修复)的场景。
- 构建集中式 Web UI,用于集群控制、工作负载监控以及延迟和吞吐量指标的实时可视化。
- 通过避免有限的基准测试时长,实现无限时间范围的测试,从而检测长期问题(如内存泄漏或堆压力)。
实验结果
研究问题
- RQ1基准测试框架如何在活跃测试期间支持动态配置更改,以模拟真实世界的故障场景?
- RQ2哪些架构模式能够支持微服务和数据存储在真实故障条件下的持续、长期性能测试?
- RQ3如何将基准测试工具集成到云原生、微服务架构的生产环境中,同时不干扰正常运行?
- RQ4在不同工作负载下,长期维护操作(如压缩、修复)对分布式数据存储的性能影响是什么?
- RQ5如何通过可插拔客户端 API 和一致的指标收集,使统一的基准测试框架能够支持多种数据存储和微服务?
主要发现
- NDBench 在长时间基准测试运行期间成功识别出性能回归以及长期问题,如内存泄漏和堆压力。
- 该框架通过支持实时配置更改和故障模拟期间的持续监控,显著缩短了系统不稳定性的检测时间。
- 与 Netflix 云栈(如 Spectator、Eureka)的集成,实现了类似生产的可观测性,并支持跨区域无缝部署。
- NDBench 的动态配置功能使团队能够检测到系统维护期间的延迟下降,例如在使用 DAX 的 DynamoDB 中,第 50 百分位延迟从 3.98ms 降至 0.79ms。
- 该工具支持新数据存储部署和系统升级的自动化测试,降低了预生产阶段的风险,提升了发布信心。
- 集中式 UI 实现了对多个基准测试实例的高效管理,并支持跨不同工作负载和故障模式的性能指标实时可视化。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。