milvus-logo
LFAI
Casa
  • Informazioni su Milvus

Rapporto sui test di benchmark di Milvus 2.2

Questo rapporto mostra i principali risultati dei test di Milvus 2.2.0. Ha lo scopo di fornire un quadro delle prestazioni di ricerca di Milvus 2.2.0, soprattutto per quanto riguarda la capacità di scalare e scalare.

Milvus Performance Evaluation 2023

Recentemente abbiamo eseguito un benchmark con Milvus 2.2.3 e abbiamo ottenuto i seguenti risultati chiave:

  • Riduzione di 2,5 volte della latenza di ricerca
  • Un aumento di 4,5 volte dei QPS
  • Ricerca di somiglianze su scala miliardaria con un minimo degrado delle prestazioni
  • Scalabilità lineare quando si utilizzano più repliche

Per i dettagli, si rimanda a questo whitepaper e al relativo codice di test di benchmark.

Sintesi

  • Rispetto a Milvus 2.1, il QPS di Milvus 2.2.0 aumenta di oltre il 48% in modalità cluster e di oltre il 75% in modalità standalone.
  • Milvus 2.2.0 ha un'impressionante capacità di scalare e scalare:
    • Il QPS aumenta linearmente quando si espandono i core della CPU da 8 a 32.
    • Il QPS aumenta linearmente quando si espandono le repliche di Querynode da 1 a 8.

Terminologia

Fare clic per visualizzare i dettagli dei termini utilizzati nel test
Termine Descrizione
nq Numero di vettori da ricercare in una richiesta di ricerca
topk Numero di vettori più vicini da recuperare per ogni vettore (in nq) in una richiesta di ricerca
ef Parametro di ricerca specifico dell'indice HNSW
RT Tempo di risposta dall'invio della richiesta alla ricezione della risposta
QPS Numero di richieste di ricerca elaborate con successo al secondo.

Ambiente di test

Tutti i test sono stati eseguiti nei seguenti ambienti.

Ambiente hardware

HardwareSpecifiche
CPUCPU Intel® Xeon® Gold 6226R a 2,90GHz
Memoria16*32 GB RDIMM, 3200 MT/s
SSDSATA 6 Gbps

Ambiente software

SoftwareVersione
Milvusv2.2.0
Milvus GO SDKv2.2.0

Schema di distribuzione

  • Le istanze Milvus (standalone o cluster) vengono distribuite tramite Helm su un cluster Kubernetes basato su macchine fisiche o virtuali.
  • I diversi test variano semplicemente nel numero di core della CPU, nella dimensione della memoria e nel numero di repliche (nodi worker), il che si applica solo ai cluster Milvus.
  • Le configurazioni non specificate sono identiche a quelle predefinite.
  • Le dipendenze di Milvus (MinIO, Pulsar ed Etcd) memorizzano i dati sull'SSD locale di ogni nodo.
  • Le richieste di ricerca vengono inviate alle istanze Milvus tramite Milvus GO SDK.

Set di dati

Il test utilizza il dataset open-source SIFT (128 dimensioni) di ANN-Benchmarks.

Pipeline del test

  1. Avviare un'istanza Milvus da Helm con le rispettive configurazioni del server come elencato in ogni test.
  2. Connettersi all'istanza Milvus tramite Milvus GO SDK e ottenere i risultati del test corrispondenti.
  3. Creare una raccolta.
  4. Inserire 1 milione di vettori SIFT. Creare un indice HNSW e configurare i parametri dell'indice impostando M su 8 e efConstruction su 200.
  5. Caricare la raccolta.
  6. Effettuare una ricerca con diversi numeri concomitanti con i parametri di ricerca nq=1, topk=1, ef=64, la durata di ogni concomitanza è di almeno 1 ora.

Risultati del test

Milvus 2.2.0 v.s. Milvus 2.1.0

Cluster

Configurazioni del server (cluster)yaml queryNode: replicas: 1 resources: limits: cpu: "12.0" memory: 8Gi requests: cpu: "12.0" memory: 8Gi

Prestazioni di ricerca

MilvusQPSRT(TP99) / msRT(TP50) / msfallimento/s
2.1.0690459280
2.2.01024863240

Cluster search performance Prestazioni della ricerca in cluster

Standalone

Configurazioni server (standalone)yaml standalone: replicas: 1 resources: limits: cpu: "12.0" memory: 16Gi requests: cpu: "12.0" memory: 16Gi

Prestazioni di ricerca

MilvusQPSRT(TP99) / msRT(TP50) / msfallimento/s
2.1.04287104760
2.2.07522127790

Standalone search performance Prestazioni della ricerca standalone

Milvus 2.2.0 Scalamento

Espandere i core della CPU in un Querynode per verificare la capacità di scalare.

Configurazioni server (cluster)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

Prestazioni di ricerca

Core della CPUNumero di CPU contemporaneeQPSRT(TP99) / msRT(TP50) / msfallimento/s
85007153127830
123001024863240
166001413585420
326002028163280

Search performance by Querynode CPU cores Prestazioni di ricerca in base ai core della CPU di Querynode

Milvus 2.2.0 Scalamento

Espandere più repliche con più Querynodes per verificare la capacità di scalare.

Nota: il numero di Querynodes è uguale a replica_number quando si carica la collezione.

Configurazioni del server (cluster)yaml queryNode: replicas: 1 / 2 / 4 / 8 resources: limits: cpu: "8.0" memory: 8Gi requests: cpu: "8.0" memory: 8Gi

ReplicheNumero di replicheQPSRT(TP99) / msRT(TP50) / msfallimento/s
15007153127830
250015903105270
480019281109400
812003065593380

Search performance by Querynode replicas Prestazioni di ricerca per repliche Querynode

Cosa fare dopo

  • Provate a eseguire da soli i test di benchmark di Milvus 2.2.0 facendo riferimento a questa guida, tranne per il fatto che dovreste usare Milvus 2.2 e Pymilvus 2.2 in questa guida.

Tradotto daDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?