快照
组织背景
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队列绑定到专属核心,避免内核中断导致的上下文切换
通过最小化上下文切换,处理器效率和整体系统性能显著提升。
快速入门
- 注册:访问Momento官网注册
- 选择SDK:GitHub获取手工维护的编程语言SDK
- 创建缓存:通过控制台创建新缓存
- 数据存取:使用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《尾部延迟的重要性远超想象》
- 《为何尾部延迟至关重要》