Google Cloud 最新のARM ベースT2A VM で Pelikan Cache をターボチャージ

Momentoは、Googleの最新のArmベースのT2A VMを使用して、サーバーレスキャッシュのスループットとレイテンシの目標を25%上回りました。

更新:このトピックに関するディープダイブをリリースしました。さらに詳しく知りたい方は、こちらをご覧ください。

Momentoでは、開発者の生産性と一貫したレイテンシーの両方において、世界最速のキャッシュになることを目指しています。Momentoはオープンコアで、Pelikanをベースに構築されています。Pelikanは10年以上にわたってTwitterのキャッシュを支えてきたオープンソースのキャッシュエンジンで、最近Rustで完全に書き直されました。また、RocksDBとKeyDBもサポートしています。これはSnapに支えられた完全にオープンソースなデータベースで、Redisに代わる高速なドロップインデータベースです。私たちがこれらの基本的なオープンソースコンポーネントを選んだのは、驚くほどのスケールで高速かつ信頼性の高いキャッシングを実現できるという評判があったからです。

私たちのスピードへのこだわりは、パフォーマンス、機能、価格において、お客様に代わって最適なVMを選ぶことにも及んでいます。私たちは、Twitterと密接に連携してAPIコールの1つづつの細部にわたりPelikanのチューニングを行い、設定ゼロでスケーラブルに利用できるようにしています。アーリーステージのスタートアップが、コストとレイテンシを削減するためにプロセッサレベルの最適化に投資するのは珍しいことですが、私たちは、ワークロードに最適なハードウェアを選ぶという顧客に対するコミットメントを実現するために、妥協することを拒否しました。

Tau T2A VM の最適化

Tau T2A VMファミリーがGoogle Cloudに登場することを知ったとき、私たちは待ちきれずにテストドライブに参加しました。Tau T2A VM用に最適化するのは高価な投資だが、その作業はスケールすれば元が取れると考えていた。しかし、それは間違いでした!

T2Aへの移行は、予想していたよりもはるかに少ない作業で済みました。PelikanはT2Aに即座に対応し、私たちは既存のチューニングプロセスを使ってArmベースのVM用に最適化しました。

作業を始める前に、VMファミリーを評価する客観的な基準を設定しました。Momento は、低レイテンシでの高スループットを重視しており、特にテールレイテンシの最適化に重点を置いています。1ミリ秒(1ms)と2ミリ秒(2ms)の2つのサービスレベル目標(SLO)で、99.9%のレイテンシ(p999)で1秒あたりのクエリー(qps)を評価しました。

T2A VMがコスト中立である(他のプラットフォームと比較した損益分岐点)ためには、PelikanがT2A-Standard-16 VMで1ms p999 SLOで260kqps、2ms p999 SLOで700kqpsを達成する必要がありました。

T2A VMへの早期アクセス(およびTwitterのブライアン・マーティンとの緊密な連携)を得てから1週間で、目標を25%上回ることができました。1ms p999 SLOで320kqpsを達成し、2ms p999 SLOで毎秒100万以上のクエリーを達成しました!

さらに良いことがわかりました。T2A-Standard-48のVMは、T2A-Standard-16の3倍のコアを持ち、1秒あたりさらに多くのクエリーを処理できました。さらに、T2A VMではDRAMが約10%安く、同じ価格帯でより大きなワーキング・セットをメモリに保持できることも分かりました。

Tau T2A VMでこれらの結果を出すためのエンジニアリング・ウィークの努力は、価値ある投資となりました。この1週間は、Google Cloud上でVMファミリー間のベンチマークに真正面から取り組み、価格と性能の比較を行い、Tau T2A VMでうまく動作するようにエンジンをチューニングしました。驚いたことに、私たちが行った最適化(コアのピン留め、IRQアフィニティなど)のほとんどすべてが、Armとx86ベースの両方のVMで改善につながりました。私たちの初期投資は、現在の規模であっても、私たちのキャッシュ・フリート全体に配当されました。

Armへの投資時期の決定

Armを検討する際、新しいプロセッサ(AMD、Arm、Intel)の評価に投資するタイミングを決めるのは難しいかもしれません。私たちは、あなたにとってフレームワークとして役立つかもしれない3つの見解を持っています。

何よりもまず、これを不可逆的な決定と思わないこと。Google Cloudの多様なプラットフォームは、評価と採用を双方向のドアにしており、いつでも変更が可能です。アプリケーションは今日Armでうまく動作しているが、明日より優れたパフォーマンスや機能を持つ新しいx86プロセッサが登場した場合、簡単にベンチマークを行い、変更することができます。

第二に、コストとパフォーマンスを評価できるテストハーネスを構築すること。新しいプロセッサを評価するために一歩下がることで、たとえそのプロセッサの導入を決定しなかったとしても、既存のプラットフォームでコスト削減とパフォーマンスの最適化を実現することができます。性能評価用のテスト・ハーネスがあれば、エンジニアリング・チームの労力を最小限に抑えながら、新しい VM ファミリを簡単に評価できます。

第三に、すべてを投入する必要はない!一部のアプリケーションをArmで実行し、他のアプリケーションをx86で実行することもできる。実際、同じアプリケーションをArmとx86で混在して実行することもできます。

Armには大きな勢いがあります。Momentoチームは、価格対パフォーマンスを向上させ、顧客に最高のキャッシュを提供するための最適化において、Google Cloudと提携する機会を得たことに興奮しています。

Momento Cacheのターボチャージャーに興味がありますか?今すぐ無料でお試しください!