Momento将对象缓存即服务迁移至Ampere Altra:性能提升与架构优化

Momento基于Ampere Altra处理器重构无服务器缓存架构,通过核心绑定和上下文切换优化实现P99.9级别2毫秒响应,支持线性扩展并降低30%运营成本,为云应用提供高性能缓存解决方案。

快照

组织背景
Momento的云应用缓存基础设施传统方案复杂耗时,需处理复制、故障转移、备份恢复及生命周期管理等操作,这些运维负担分散了核心业务开发的资源。

解决方案
Momento提供基于Ampere架构Google Tau T2A实例的无服务器缓存方案,依托Apache Pelikan开源项目自动化资源管理。开发者可通过API快速集成缓存,无需关注底层基础设施。

核心特性

  • 无服务器架构:无需管理、配置或维护服务器
  • 零配置:基础设施持续自动优化
  • 高性能:P99.9缓存请求往返时间维持在2毫秒
  • 可扩展性:多线程存储节点与核心绑定支持高负载
  • 扩展服务:包含发布-订阅消息总线等产品套件

技术创新
通过线程核心绑定和专用网络I/O核心优化上下文切换,在16核实例上实现每秒超百万次操作。

影响
基于Ampere的解决方案加速开发者体验,降低运维负担,为现代云应用构建高性价比高性能系统。


背景:Momento及其使命

Momento由AWS DynamoDB团队前成员Khawaja Shams和Daniela Miao于2021年底创立。基于在AWS的丰富缓存经验,团队选择缓存作为初始产品,后扩展至消息总线等服务。其无服务器缓存基于Apache Pelikan开源项目,帮助客户自动化键值缓存的管理优化。

云应用普遍使用缓存加速常用对象访问,如网站首页、图片或热门商品。传统缓存运维涉及复制、故障转移、备份恢复及升级部署等复杂操作,消耗大量开发资源。Momento旨在通过可靠API让用户专注业务价值交付,彻底消除"资源调配"概念。


部署:向Ampere处理器的无缝迁移

Momento选择Ampere驱动的Google T2A实例最初出于性价比考虑。基于Ampere的Tau T2A虚拟机提供可预测的高性能和线性扩展,比x86虚拟机性能提升超30%。

联合创始人兼CTO Daniela Miao强调迁移的灵活性:“这不是单向决策[…]可运行混合模式,部分应用部署在Arm64,部分在x86”。实际迁移过程比预期更顺利,“向Ampere T2A实例的移植非常惊人——几乎无需修改即可运行”。


性能成果:Ampere如何助力产品优化

Momento重点关注尾部延迟(P99.9响应时间),目标维持2毫秒往返时间。尾部延迟至关重要,因为单个网页加载可能触发数百次缓存请求,P99延迟恶化会影响几乎所有用户。CTO Daniela Miao引用Marc Brooker的研究指出:“成功应用中1%的请求可能影响每个用户[…]我们专注为客户保障P99.9延迟。”


上下文切换优化

Momento发现特定核心的上下文切换导致性能开销。上下文切换发生在处理器暂停当前任务执行新任务时,主要由系统中断(如内核处理网络流量)和处理器竞争(高负载下任务交换)引起。

优化方案:

  • 核心绑定:将线程固定到特定核心,防止其他应用干扰
  • 网络I/O专用核心:4个RX/TX队列绑定到专属核心,避免内核中断导致的上下文切换
    通过最小化上下文切换,处理器效率和整体系统性能显著提升。

快速入门

  1. 注册:访问Momento官网注册
  2. 选择SDK:GitHub获取手工维护的编程语言SDK
  3. 创建缓存:通过控制台创建新缓存
  4. 数据存取:使用SDK的set/get函数操作缓存对象

架构设计

Momento架构将API网关功能与存储节点数据线程分离。API网关路由请求至最优存储节点,每个存储节点配备多工作线程处理缓存操作。

  • 扩展性:16核T2A-standard-16虚拟机运行两个Pelikan实例,各6线程
  • 核心绑定:线程固定到特定核心,随负载增长避免中断
  • 网络优化:4个队列对即可实现95%负载,网络吞吐量无瓶颈

扩展资源

  • 深入了解Ampere CPU上的Tau T2A实例实践:《在Google Cloud最新Arm架构T2A虚拟机上加速Pelikan缓存》
  • Ampere开发者中心提供代码优化指南
  • 加入Ampere开发者社区交流案例研究问题
  • 订阅YouTube频道获取更多开发者内容

参考文献

  • Yao Yue在2015 StrangeLoop的Pelikan演讲
  • 《让Pelikan在Arm上飞驰》
  • 《通过Google Cloud Tau T2A虚拟机加速Pelikan缓存》
  • Marc Brooker《尾部延迟的重要性远超想象》
  • 《为何尾部延迟至关重要》
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计