🚀 Essayez Zilliz Cloud, la version entièrement gérée de Milvus, gratuitement—découvrez des performances 10x plus rapides ! Essayez maintenant>>

milvus-logo
LFAI
  • Home
  • Blog
  • Guide rapide de l'évaluation comparative de Milvus 2.1

Guide rapide de l'évaluation comparative de Milvus 2.1

  • Engineering
August 16, 2022
Yanliang Qiao

Cover Couverture

Nous avons récemment mis à jour le rapport de benchmarking de Milvus 2.1. Des tests avec un ensemble de données d'un million de vecteurs ont prouvé que le QPS peut être considérablement augmenté en fusionnant des requêtes de petite taille.

Voici quelques scripts simples qui vous permettront de reproduire facilement ces tests.

Procédures

  1. Déployez un Milvus autonome ou en grappe. Dans ce cas, l'adresse IP du serveur Milvus est 10.100.31.105.

  2. Déployer un client. Dans ce cas, nous utilisons Ubuntu 18.04 et Python 3.8.13 pour le déploiement. Exécutez le code suivant pour installer PyMilvus 2.1.1.

pip install pymilvus==2.1.1
  1. Téléchargez et copiez les fichiers suivants dans le même répertoire de travail que le client. Dans ce cas, le répertoire de travail est /go_ben.

    Remarque :

    • benchmark et benchmark-mac sont des fichiers exécutables développés et compilés à l'aide de Go SDK 2.1.1. Ils ne sont utilisés que pour effectuer une recherche simultanée.

    • Pour les utilisateurs d'Ubuntu, veuillez télécharger benchmark; pour les utilisateurs de macOS, veuillez télécharger benchmark-mac.

    • Des autorisations d'exécution sont requises pour accéder à benchmark ou benchmark-mac.

    • Les utilisateurs de Mac doivent faire confiance au fichier benchmark-mac en configurant Sécurité et confidentialité dans les Préférences système.

    • Les paramètres relatifs à la recherche simultanée peuvent être trouvés et modifiés dans le code source de go_benchmark.py.

  1. Créez une collection et insérez des données vectorielles.
root@milvus-pytest:/go_ben# python collection_prepare.py 10.100.31.105 
  1. Ouvrez /tmp/collection_prepare.log pour vérifier le résultat de l'exécution.
...
08/11/2022 17:33:34 PM - INFO - Build index costs 263.626
08/11/2022 17:33:54 PM - INFO - Collection prepared completed
  1. Appelez benchmark (ou benchmark-mac sur macOS) pour effectuer une recherche simultanée.
root@milvus-pytest:/go_ben# python go_benchmark.py 10.100.31.105 ./benchmark
[write_json_file] Remove file(search_vector_file.json).
[write_json_file] Write json file:search_vector_file.json done.
Params of go_benchmark: ['./benchmark', 'locust', '-u', '10.100.31.105:19530', '-q', 'search_vector_file.json', '-s', '{\n  "collection_name": "random_1m",\n  "partition_names": [],\n  "fieldName": "embedding",\n  "index_type": "HNSW",\n  "metric_type": "L2",\n  "params": {\n    "sp_value": 64,\n    "dim": 128\n  },\n  "limit": 1,\n  "expr": null,\n  "output_fields": [],\n  "timeout": 600\n}', '-p', '10', '-f', 'json', '-t', '60', '-i', '20', '-l', 'go_log_file.log']
[2022-08-11 11:37:39.811][    INFO] - Name      #   reqs      # fails  |       Avg       Min       Max    Median  |     req/s  failures/s (benchmark_run.go:212:sample)
[2022-08-11 11:37:39.811][    INFO] - go search     9665     0(0.00%)  |    20.679     6.499    81.761    12.810  |    483.25        0.00 (benchmark_run.go:213:sample)
[2022-08-11 11:37:59.811][    INFO] - Name      #   reqs      # fails  |       Avg       Min       Max    Median  |     req/s  failures/s (benchmark_run.go:212:sample)
[2022-08-11 11:37:59.811][    INFO] - go search    19448     0(0.00%)  |    20.443     6.549    78.121    13.401  |    489.22        0.00 (benchmark_run.go:213:sample)
[2022-08-11 11:38:19.811][    INFO] - Name      #   reqs      # fails  |       Avg       Min       Max    Median  |     req/s  failures/s (benchmark_run.go:212:sample)
[2022-08-11 11:38:19.811][    INFO] - go search    29170     0(0.00%)  |    20.568     6.398    76.887    12.828  |    486.15        0.00 (benchmark_run.go:213:sample)
[2022-08-11 11:38:19.811][   DEBUG] - go search run finished, parallel: 10(benchmark_run.go:95:benchmark)
[2022-08-11 11:38:19.811][    INFO] - Name      #   reqs      # fails  |       Avg       Min       Max    Median  |     req/s  failures/s (benchmark_run.go:159:samplingLoop)
[2022-08-11 11:38:19.811][    INFO] - go search    29180     0(0.00%)  |    20.560     6.398    81.761    13.014  |    486.25        0.00 (benchmark_run.go:160:samplingLoop)
Result of go_benchmark: {'response': True, 'err_code': 0, 'err_message': ''} 
  1. Ouvrez le fichier go_log_file.log dans le répertoire actuel pour vérifier le journal détaillé de la recherche. Voici les informations de recherche que vous pouvez trouver dans le journal de recherche.
    • reqs : nombre de demandes de recherche entre le moment où la concurrence se produit et le moment présent (la période actuelle)

    • fails : nombre de demandes ayant échoué, exprimé en pourcentage du nombre de demandes dans l'intervalle de temps en cours.

    • Avg : temps de réponse moyen de la requête dans l'intervalle de temps actuel (unité : millisecondes)

    • Min : temps de réponse minimal de la demande dans l'intervalle de temps actuel (unité : millisecondes)

    • Max : temps de réponse maximal de la demande dans l'intervalle de temps actuel (unité : millisecondes)

    • Median : temps médian de réponse à une demande dans l'intervalle de temps actuel (unité : millisecondes)

    • req/s : nombre de demandes par seconde, c'est-à-dire QPS

    • failures/s : nombre moyen de requêtes échouées par seconde dans l'intervalle de temps actuel.

Téléchargement de scripts et de fichiers exécutables

Prochaines étapes

Avec la sortie officielle de Milvus 2.1, nous avons préparé une série de blogs présentant les nouvelles fonctionnalités. En savoir plus dans cette série de blogs :

Try Managed Milvus for Free

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

Get Started

Like the article? Spread the word

Continuer à Lire