milvus-logo
LFAI
Home
  • À propos de Milvus

Rapport sur les tests d'évaluation comparative de Milvus 2.2

Ce rapport présente les principaux résultats des tests de Milvus 2.2.0. Il vise à fournir une image des performances de recherche de Milvus 2.2.0, en particulier en ce qui concerne la capacité de mise à l'échelle et d'extension.

Milvus Performance Evaluation 2023

Nous avons récemment effectué une analyse comparative avec Milvus 2.2.3 et avons obtenu les résultats clés suivants :

  • Une réduction de 2,5 fois de la latence de recherche
  • Augmentation de 4,5 fois du QPS
  • Recherche de similarités à l'échelle du milliard avec une faible dégradation des performances
  • Évolutivité linéaire lors de l'utilisation de répliques multiples

Pour plus de détails, nous vous invitons à consulter ce livre blanc et le code de test de référence correspondant.

Résumé

  • Par rapport à Milvus 2.1, le QPS de Milvus 2.2.0 augmente de plus de 48 % en mode cluster et de plus de 75 % en mode autonome.
  • Milvus 2.2.0 a une capacité impressionnante de mise à l'échelle et d'extension :
    • Le QPS augmente de façon linéaire lorsque le nombre de cœurs de CPU passe de 8 à 32.
    • Le QPS augmente linéairement lorsque les répliques Querynode passent de 1 à 8.

Terminologie

Cliquez pour voir les détails des termes utilisés dans le test.
Terme Description
nq Nombre de vecteurs à rechercher dans une demande de recherche
topk Nombre de vecteurs les plus proches à récupérer pour chaque vecteur (dans nq) dans une requête de recherche
ef Paramètre de recherche spécifique à l'index HNSW
RT Temps de réponse entre l'envoi de la demande et la réception de la réponse
QPS Nombre de demandes de recherche traitées avec succès par seconde

Environnement de test

Tous les tests sont effectués dans les environnements suivants.

Environnement matériel

MatérielSpécification
UNITÉ CENTRALEIntel® Xeon® Gold 6226R CPU @ 2.90GHz
Mémoire16*\32 Go RDIMM, 3200 MT/s
SSDSATA 6 Gbps

Environnement logiciel

LogicielVersion du logiciel
Milvusv2.2.0
Milvus GO SDKv2.2.0

Schéma de déploiement

  • Les instances Milvus (autonomes ou en cluster) sont déployées via Helm sur un cluster Kubernetes basé sur des machines physiques ou virtuelles.
  • Les différents tests varient simplement dans le nombre de cœurs de CPU, la taille de la mémoire et le nombre de répliques (nœuds de travail), ce qui ne s'applique qu'aux clusters Milvus.
  • Les configurations non spécifiées sont identiques aux configurations par défaut.
  • Les dépendances Milvus (MinIO, Pulsar et Etcd) stockent les données sur le disque SSD local de chaque nœud.
  • Les demandes de recherche sont envoyées aux instances Milvus via le SDK Milvus GO.

Ensembles de données

Le test utilise l'ensemble de données open-source SIFT (128 dimensions) de ANN-Benchmarks.

Pipeline de test

  1. Démarrer une instance Milvus par Helm avec les configurations de serveur respectives comme indiqué dans chaque test.
  2. Se connecter à l'instance Milvus via Milvus GO SDK et obtenir les résultats des tests correspondants.
  3. Créer une collection.
  4. Insérer 1 million de vecteurs SIFT. Construire un index HNSW et configurer les paramètres de l'index en définissant M sur 8 et efConstruction sur 200.
  5. Chargez la collection.
  6. Effectuez une recherche avec différents nombres simultanés avec les paramètres de recherche nq=1, topk=1, ef=64, la durée de chaque concurrence est d'au moins 1 heure.

Résultats des tests

Milvus 2.2.0 v.s. Milvus 2.1.0

Cluster

Configurations de serveur (cluster)yaml queryNode: replicas: 1 resources: limits: cpu: "12.0" memory: 8Gi requests: cpu: "12.0" memory: 8Gi

Performances de recherche

MilvusQPSRT(TP99) / msRT(TP50) / mséchec/s
2.1.0690459280
2.2.01024863240

Cluster search performance Performances de la recherche en grappe

Autonome

Configurations de serveurs (autonomes)yaml standalone: replicas: 1 resources: limits: cpu: "12.0" memory: 16Gi requests: cpu: "12.0" memory: 16Gi

Performances de recherche

MilvusQPSRT(TP99) / msRT(TP50) / mséchec/s
2.1.04287104760
2.2.07522127790

Standalone search performance Performances de la recherche autonome

Milvus 2.2.0 Mise à l'échelle

Augmenter le nombre de cœurs de CPU dans un Querynode pour vérifier la capacité de montée en charge.

Configurations de serveur (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

Performances de recherche

Cœurs de CPUNombre simultanéQPSRT(TP99) / msRT(TP50) / msfail/s
85007153127830
123001024863240
166001413585420
326002028163280

Search performance by Querynode CPU cores Performances de recherche par cœur d'unité centrale Querynode

Milvus 2.2.0 Scale-out

Développez plus de répliques avec plus de Querynodes pour vérifier la capacité de mise à l'échelle.

Remarque : le nombre de Querynodes est égal à replica_number lors du chargement de la collection.

Configurations de serveur (cluster)yaml queryNode: replicas: 1 / 2 / 4 / 8 resources: limits: cpu: "8.0" memory: 8Gi requests: cpu: "8.0" memory: 8Gi

RépliquesNombre simultanéQPSRT(TP99) / msRT(TP50) / msfail/s
15007153127830
250015903105270
480019281109400
812003065593380

Search performance by Querynode replicas Performances de recherche par réplicas Querynode

Prochaine étape

  • Essayez d'effectuer les tests de référence de Milvus 2.2.0 par vous-même en vous référant à ce guide, sauf que vous devez utiliser Milvus 2.2 et Pymilvus 2.2 dans ce guide.

Traduit parDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?