インフラ・DevOps
Nekiで毎秒1億1800万クエリ
118M Queries per Second on Neki (planetscale.com)
要約
PlanetScaleは、新プラットフォーム「Neki」のプレビューリリースを記念して、そのパフォーマンスを検証しました。このテストでは、512シャーディング構成で1.22 PiBのデータを扱いながら、毎秒1億1800万クエリという驚異的なスループットを達成しました。このベンチマークは、シャーディングによる線形スケーラビリティと、Nekiが大量の読み込みリクエストを処理できる能力を実証するものです。
全文翻訳
Nekiで毎秒1億1800万クエリ
Florent Poinsard, Hirad Pourtahmasbi | 2026年9月11日
昨日、Nekiをプラットフォームプレビューでリリースしました。リリースを記念して、Nekiで毎秒100万クエリを実行するテストを行いたいと考えました。5シャーディングですぐにこの目標を達成し、さらにどこまでプッシュできるか試すことにしました。
次の実行は、512シャーディングで毎秒1億1800万クエリ、データ量は1.22 PiBで終了しました。
線形スケーラビリティ
ベンチマークは非常にシンプルでした。シングルシャーディングのポイントセレクトで、プライマリキーによるクエリごとに1行を取得します。書き込み、結合、クロスシャーディングクエリはありません。各シャーディングが受け取るワークロードは分離されており、複数のシャーディングにまたがる単一のクエリはありません。
目標は、各シャーディングで毎秒20万クエリ(QPS)を維持し、その後クラスターを拡張してスループットを増加させることでした。5シャーディング、次に50、そして512へと増やしました。
シャーディング
ルーター
配信QPS
QPS/シャーディング
5
1
999,624
199,925
50
4
899,900
198,478
512
480
118,538,803
231,521
シャーディング数を10倍にすると、スループットも10倍になります。さらに10倍です。5シャーディングから50シャーディングへの移行では、シャーディングあたりのレートは0.8%以内で維持されました。512シャーディングではまだ余裕があったため、ロードジェネレーターにそれを使用させ、各シャーディングは20万QPSではなく23万1000QPSで安定しました。
毎秒1億1850万クエリ
512シャーディングと1.22 PiBのデータ全体で、毎秒1億1853万8803クエリを16分間維持しました。記録された最大値は1億1874万7267.5でした。
512シャーディング、それぞれに1つのPostgresプライマリを搭載したr8g.16xlargeインスタンス
480 Nekiルーター、それぞれが独自の8xlargeインスタンスに配置
p99レイテンシはルーターで6.06ms、クライアントで13.95ms
毎秒67エラー、約180万クエリに1つのエラー
フリート全体で2兆バイト/秒以上の読み込みIOPS
ネットワークで2兆バイト/秒以上
この実行について明確にしておく価値があります。シャーディングはレプリカなしのプライマリのみで構成され、ワークロードはクエリの複雑さが変動する読み取り専用であり、測定ウィンドウ中にフェイルオーバーは発生しませんでした。
1億QPS達成までのエンジニアリングの努力と興味深い課題については、今後の記事で詳しく説明します。