🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

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 倍
  • QPS 增加 4.5 倍
  • 十億規模的相似性搜尋,效能幾乎沒有降低
  • 使用多複本時的線性擴充能力

如需詳細資訊,歡迎參閱本白皮書及 相關基準測試程式碼

摘要

  • 與 Milvus 2.1 相比,Milvus 2.2.0 的 QPS 在群集模式下增加超過 48%,在單機模式下增加超過 75%。
  • Milvus 2.2.0 具備令人印象深刻的擴充能力:
    • 當 CPU 核心從 8 個擴充到 32 個時,QPS 會以線性方式增加。
    • 當 Querynode 複製本從 1 個擴充到 8 個時,QPS 會以線性方式增加。

術語

點擊查看測試中使用的術語詳情
術語 說明
nq 一次搜尋請求中要搜尋的向量數量
topk 一個搜尋請求中,每個向量(以 nq 為單位)要擷取的最近向量數量
ef HNSW 索引的特定搜尋參數
RT 從傳送請求到接收回應的回應時間
QPS 每秒成功處理的搜尋要求數量

測試環境

所有測試都在下列環境下進行。

硬體環境

硬體環境規格
中央處理器Intel® Xeon® Gold 6226R CPU @ 2.90GHz
記憶體16*/32 GB RDIMM, 3200 MT/s
固態硬碟SATA 6 Gbps

軟體環境

軟體環境版本
Milvusv2.2.0
Milvus GO SDKv2.2.0

部署方案

  • Milvus 實體(單機或叢集)是透過Helm部署在 Kubernetes 叢集上,以實體或虛擬機器為基礎。
  • 不同的測試僅在 CPU 核心數量、記憶體大小和副本 (Worker 節點) 數量上有所不同,這僅適用於 Milvus 叢集。
  • 未指定的配置與預設配置相同。
  • Milvus 依賴 (MinIO、Pulsar 和 Etcd) 將資料儲存在每個節點的本機 SSD 上。
  • 搜尋要求透過 MilvusGO SDK 傳送至 Milvus 實體。

資料集

測試使用ANN-Benchmarks 的開放源碼資料集 SIFT (128 維度)。

測試流程

  1. 使用 Helm 啟動 Milvus 實例,並根據各測試列出的伺服器配置。
  2. 透過 Milvus GO SDK 連線至 Milvus 實例,並取得相對應的測試結果。
  3. 建立一個集合。
  4. 插入 100 萬個 SIFT 向量。建立 HNSW 索引,並透過設定M8efConstruction200 來設定索引參數。
  5. 載入資料夾。
  6. 使用不同的並發數進行搜尋,搜尋參數為nq=1, topk=1, ef=64 ,每個並發數的持續時間至少為 1 小時。

測試結果

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 擴充能力

擴充一個 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 擴充能力

使用更多 Querynodes 擴充更多副本,以檢查擴充能力。

注意:載入集合時,Querynodes 的數量等於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.0 基準測試,只是您應該改用本指南中的 Milvus 2.2 和 Pymilvus 2.2。

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?