milvus-logo
LFAI
フロントページへ
  • Milvusについて

Milvus 2.2 ベンチマークテストレポート

本レポートは、Milvus 2.2.0の主なテスト結果を示すものであり、Milvus 2.2.0の検索性能、特にスケールアップとスケールアウトの能力を示すことを目的としています。

Milvus Performance Evaluation 2023

この度、Milvus 2.2.3に対するベンチマークを実施し、以下の主要な結果を得ました:

  • 検索レイテンシーの2.5倍削減
  • 4.5倍のQPS向上
  • 10億件規模の類似検索でも性能劣化はほとんどなし
  • 複数のレプリカを使用した場合の線形スケーラビリティ

詳細については、このホワイトペーパーと 関連するベンチマーク・テスト・コードをご参照ください。

概要

  • Milvus 2.1と比較すると、Milvus 2.2.0のQPSはクラスタモードで48%以上、スタンドアロンモードで75%以上向上しています。
  • Milvus2.2.0は、スケールアップとスケールアウトが可能である:
    • CPUコアを8から32に拡張すると、QPSは直線的に増加する。
    • QPSは、Querynodeレプリカを1から8まで拡張することで直線的に増加します。

用語解説

テストで使用した用語の詳細を見るにはクリックしてください。
用語 説明
nq 1回の検索要求で検索されるベクトルの数
topk 1回の検索要求で、各ベクトル(nq)に対して検索される最も近いベクトルの数
ef HNSW インデックスに固有の検索パラメータ
RT リクエストを送信してから応答を受信するまでの応答時間
QPS 1秒間に正常に処理された検索リクエスト数

テスト環境

すべてのテストは以下の環境で実施した。

ハードウェア環境

ハードウェアスペック
CPUインテル® Xeon® Gold 6226R CPU @ 2.90GHz
メモリ16*32 GB RDIMM、3200 MT/秒
SSDSATA 6 Gbps

ソフトウェア環境

ソフトウェアバージョン
milvusv2.2.0
Milvus GO SDKv2.2.0

デプロイ方式

  • Milvusインスタンス(スタンドアロンまたはクラスタ)は、物理マシンまたは仮想マシンをベースとしたKubernetesクラスタ上にHelmを介してデプロイされる。
  • テストによってCPUコア数、メモリサイズ、レプリカ(ワーカーノード)数が異なるだけで、Milvusクラスタにのみ適用されます。
  • 未指定の構成はデフォルトの構成と同じである。
  • Milvusの依存関係(MinIO、Pulsar、Etcd)は、各ノードのローカルSSDにデータを保存します。
  • 検索リクエストは、Milvus GO SDKを介してMilvusインスタンスに送信されます。

データセット

テストでは、ANN-BenchmarksのオープンソースデータセットSIFT(128次元)を使用する。

テストパイプライン

  1. HelmでMilvusインスタンスを起動し、各テストに記載されているサーバ設定を行う。
  2. Milvus GO SDK経由でMilvusインスタンスに接続し、対応するテスト結果を取得する。
  3. コレクションを作成する。
  4. 100万個のSIFTベクトルを挿入する。HNSW インデックスを構築し、M8 に、efConstruction200 に設定してインデックスパラメータを構成する。
  5. コレクションをロードする。
  6. 検索パラメータnq=1, topk=1, ef=64 を使用して、異なる同時実行数で検索する。

テスト結果

Milvus 2.2.0 v.s. Milvus 2.1.0

クラスタ

サーバー構成(クラスタ)yaml queryNode: replicas: 1 resources: limits: cpu: "12.0" memory: 8Gi requests: cpu: "12.0" memory: 8Gi

検索パフォーマンス

MilvusQPSRT(TP99) / msRT(TP50) / msフェール/秒
2.1.0690459280
2.2.01024863240

Cluster search performance クラスタ検索のパフォーマンス

スタンドアロン

サーバー構成(スタンドアロン)yaml standalone: replicas: 1 resources: limits: cpu: "12.0" memory: 16Gi requests: cpu: "12.0" memory: 16Gi

検索パフォーマンス

MilvusQPSRT(TP99) / msRT(TP50) / msフェール/秒
2.1.04287104760
2.2.07522127790

Standalone search performance スタンドアロン検索のパフォーマンス

Milvus 2.2.0 スケールアップ

1つのQuerynodeのCPUコアを拡張し、スケールアップ能力を確認する。

サーバ構成(クラスタ)yaml queryNode: replicas: 1 resources: limits: cpu: "8.0" /"12.0" /"16.0" /"32.0" memory: 8Gi requests: cpu: "8.0" /"12.0" /"16.0" /"32.0" memory: 8Gi

検索パフォーマンス

CPUコア同時実行数QPSRT(TP99) / msRT(TP50) / msフェール/秒
85007153127830
123001024863240
166001413585420
326002028163280

Search performance by Querynode CPU cores QuerynodeのCPUコアによる検索パフォーマンス

Milvus 2.2.0 スケールアウト

より多くのQuerynodeでより多くのレプリカを拡張し、スケールアウト能力をチェックします。

注: Querynodeの数は、コレクションをロードするときのreplica_number

サーバー構成 (クラスタ)yaml queryNode: replicas: 1 / 2 / 4 / 8 resources: limits: cpu: "8.0" memory: 8Gi requests: cpu: "8.0" memory: 8Gi

レプリカ数同時実行数QPSRT(TP99) / msRT(TP50) / msフェール/秒
15007153127830
250015903105270
480019281109400
812003065593380

Search performance by Querynode replicas Querynodeレプリカによる検索パフォーマンス

次のステップ

  • このガイドのMilvus 2.2とPymilvus 2.2を使用する以外は、このガイドを参照してMilvus 2.2.0のベンチマークテストを実行してみてください。

翻訳DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?