🚀 Prueba Zilliz Cloud, el Milvus completamente gestionado, gratis—¡experimenta un rendimiento 10 veces más rápido! Prueba Ahora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Guía rápida para la evaluación comparativa de Milvus 2.1

Guía rápida para la evaluación comparativa de Milvus 2.1

  • Engineering
August 16, 2022
Yanliang Qiao

Cover Portada

Recientemente, hemos actualizado el informe de referencia de Milvus 2.1. Las pruebas con un conjunto de datos de 1 millón de vectores han demostrado que el QPS puede incrementarse drásticamente fusionando consultas de nq pequeño.

A continuación le ofrecemos algunos scripts sencillos para que pueda reproducir fácilmente las pruebas.

Procedimientos

  1. Despliegue un Milvus independiente o en clúster. En este caso, la dirección IP del servidor Milvus es 10.100.31.105.

  2. Despliegue un cliente. En este caso, utilizamos Ubuntu 18.04 y Python 3.8.13 para el despliegue. Ejecuta el siguiente código para instalar PyMilvus 2.1.1.

pip install pymilvus==2.1.1
  1. Descarga y copia los siguientes archivos en el mismo directorio de trabajo que el cliente. En este caso, el directorio de trabajo es /go_ben.

    Nota:

    • benchmark y benchmark-mac son archivos ejecutables desarrollados y compilados utilizando Go SDK 2.1.1. Sólo se utilizan para realizar una búsqueda concurrente.

    • Para los usuarios de Ubuntu, descargue benchmark; para los usuarios de macOS, descargue benchmark-mac.

    • Se requieren permisos de ejecutable para acceder a benchmark o benchmark-mac.

    • Los usuarios de Mac deben confiar en el archivo benchmark-mac configurando Seguridad y Privacidad en Preferencias del Sistema.

    • La configuración de la búsqueda concurrente puede encontrarse y modificarse en el código fuente de go_benchmark.py.

  1. Cree una colección e inserte datos vectoriales.
root@milvus-pytest:/go_ben# python collection_prepare.py 10.100.31.105 
  1. Abra /tmp/collection_prepare.log para comprobar el resultado en ejecución.
...
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. Llame a benchmark (o benchmark-mac en macOS) para realizar una búsqueda concurrente.
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. Abra el archivo go_log_file.log en el directorio actual para comprobar el registro detallado de la búsqueda. La siguiente es la información de búsqueda que puede encontrar en el registro de búsqueda.
    • reqs: número de peticiones de búsqueda desde el momento en que se produce la concurrencia hasta el momento actual (periodo de tiempo actual)

    • Fallos: número de peticiones fallidas como porcentaje de las peticiones en el periodo de tiempo actual.

    • Avg: tiempo medio de respuesta de las peticiones en el periodo de tiempo actual (unidad: milisegundos)

    • Mín: tiempo mínimo de respuesta de la solicitud en el intervalo de tiempo actual (unidad: milisegundos)

    • Max: tiempo máximo de respuesta de la solicitud en el intervalo de tiempo actual (unidad: milisegundos)

    • Mediana: tiempo medio de respuesta de la solicitud en el periodo de tiempo actual (unidad: milisegundos)

    • req/s: número de peticiones por segundo, es decir, QPS

    • failures/s: número medio de peticiones fallidas por segundo en el periodo de tiempo actual.

Descarga de scripts y archivos ejecutables

Lo que viene a continuación

Con el lanzamiento oficial de Milvus 2.1, hemos preparado una serie de blogs presentando las nuevas características. Lea más en esta serie 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

Sigue Leyendo