milvus-logo
LFAI
Home
  • Sobre Milvus

Relatório de testes de referência do Milvus 2.2

Este relatório mostra os principais resultados dos testes do Milvus 2.2.0. O seu objetivo é fornecer uma imagem do desempenho de pesquisa do Milvus 2.2.0, especialmente no que diz respeito à capacidade de aumentar e diminuir a escala.

Milvus Performance Evaluation 2023

Recentemente, efectuámos um teste de referência em relação ao Milvus 2.2.3 e obtivemos os seguintes resultados principais:

  • Uma redução de 2,5x na latência de pesquisa
  • Um aumento de 4,5x no QPS
  • Pesquisa de similaridade em escala de bilhões com pouca degradação de desempenho
  • Escalabilidade linear ao usar várias réplicas

Para obter detalhes, consulte este whitepaper e o código de teste de benchmark relacionado.

Resumo

  • Em comparação com o Milvus 2.1, o QPS do Milvus 2.2.0 aumenta mais de 48% no modo de cluster e mais de 75% no modo autónomo.
  • O Milvus 2.2.0 tem uma capacidade impressionante de escalar para cima e para fora:
    • O QPS aumenta linearmente ao expandir os núcleos da CPU de 8 para 32.
    • O QPS aumenta linearmente quando se expandem as réplicas Querynode de 1 para 8.

Terminologia

Clique para ver os detalhes dos termos usados no teste
Termo Descrição
nq Número de vectores a pesquisar num pedido de pesquisa
topk Número de vectores mais próximos a obter para cada vetor (em nq) num pedido de pesquisa
ef Um parâmetro de pesquisa específico do índice HNSW
RT Tempo de resposta desde o envio do pedido até à receção da resposta
QPS Número de pedidos de pesquisa que são processados com êxito por segundo

Ambiente de teste

Todos os testes são efectuados nos seguintes ambientes.

Ambiente de hardware

HardwareEspecificação
CPUCPU Intel® Xeon® Gold 6226R a 2,90GHz
Memória16*\32 GB RDIMM, 3200 MT/s
SSDSATA 6 Gbps

Ambiente de software

SoftwareVersão do software
Milvusv2.2.0
Milvus GO SDKv2.2.0

Esquema de implantação

  • As instâncias do Milvus (autónomas ou em cluster) são implementadas através do Helm num cluster Kubernetes baseado em máquinas físicas ou virtuais.
  • Os diferentes testes variam apenas no número de núcleos de CPU, no tamanho da memória e no número de réplicas (nós de trabalho), o que só se aplica aos clusters Milvus.
  • As configurações não especificadas são idênticas às configurações padrão.
  • As dependências do Milvus (MinIO, Pulsar e Etcd) armazenam dados no SSD local em cada nó.
  • Os pedidos de pesquisa são enviados para as instâncias do Milvus através do Milvus GO SDK.

Conjuntos de dados

O teste usa o conjunto de dados de código aberto SIFT (128 dimensões) do ANN-Benchmarks.

Pipeline de teste

  1. Inicie uma instância do Milvus pelo Helm com as respectivas configurações de servidor, conforme listado em cada teste.
  2. Ligue-se à instância do Milvus através do Milvus GO SDK e obtenha os resultados dos testes correspondentes.
  3. Criar uma coleção.
  4. Inserir 1 milhão de vectores SIFT. Crie um índice HNSW e configure os parâmetros do índice, definindo M para 8 e efConstruction para 200.
  5. Carregue a coleção.
  6. Pesquise com diferentes números concorrentes com os parâmetros de pesquisa nq=1, topk=1, ef=64, a duração de cada concorrência é de, pelo menos, 1 hora.

Resultados do teste

Milvus 2.2.0 v.s. Milvus 2.1.0

Cluster

Configurações do servidor (cluster)yaml queryNode: replicas: 1 resources: limits: cpu: "12.0" memory: 8Gi requests: cpu: "12.0" memory: 8Gi

Desempenho da pesquisa

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

Cluster search performance Desempenho da pesquisa em cluster

Autónomo

Configurações de servidor (autónomo)yaml standalone: replicas: 1 resources: limits: cpu: "12.0" memory: 16Gi requests: cpu: "12.0" memory: 16Gi

Desempenho da pesquisa

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

Standalone search performance Desempenho da pesquisa autónoma

Milvus 2.2.0 Aumento de escala

Expanda os núcleos de CPU num Querynode para verificar a capacidade de aumento de escala.

Configurações de servidor (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

Desempenho da pesquisa

Núcleos de CPUNúmero simultâneoQPSRT(TP99) / msRT(TP50) / msfalha/s
85007153127830
123001024863240
166001413585420
326002028163280

Search performance by Querynode CPU cores Desempenho de pesquisa por núcleos de CPU Querynode

Milvus 2.2.0 Expansão

Expanda mais réplicas com mais Querynodes para verificar a capacidade de expansão.

Nota: o número de Querynodes é igual a replica_number ao carregar a coleção.

Configurações do servidor (cluster)yaml queryNode: replicas: 1 / 2 / 4 / 8 resources: limits: cpu: "8.0" memory: 8Gi requests: cpu: "8.0" memory: 8Gi

RéplicasNúmero simultâneoQPSRT(TP99) / msRT(TP50) / msfalha/s
15007153127830
250015903105270
480019281109400
812003065593380

Search performance by Querynode replicas Desempenho da pesquisa por réplicas Querynode

O que vem a seguir

  • Tente realizar os testes de benchmark do Milvus 2.2.0 por conta própria, consultando este guia, exceto que você deve usar o Milvus 2.2 e o Pymilvus 2.2 neste guia.

Traduzido porDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?