Milvus 2.2 벤치마크 테스트 보고서

이 보고서는 Milvus 2.2.0의 주요 테스트 결과를 보여줍니다. 특히 스케일 업 및 스케일 아웃 기능에서 Milvus 2.2.0 검색 성능에 대한 그림을 제공하는 것을 목표로 합니다.

Milvus Performance Evaluation 2023

최근 Milvus 2.2.3에 대한 벤치마크를 실행한 결과 다음과 같은 주요 결과를 확인했습니다:

  • 검색 지연 시간 2.5배 감소
  • QPS 4.5배 증가
  • 성능 저하가 거의 없는 수십억 개 규모의 유사도 검색 가능
  • 여러 복제본 사용 시 선형적인 확장성

자세한 내용은 이 백서 및 관련 벤치마크 테스트 코드를 참조하세요.

요약

  • Milvus 2.1과 비교하여 Milvus 2.2.0의 QPS는 클러스터 모드에서 48% 이상, 독립형 모드에서 75% 이상 증가했습니다.
  • Milvus 2.2.0은 스케일 업 및 스케일 아웃 기능이 매우 뛰어납니다:
    • CPU 코어를 8개에서 32개로 확장할 때 QPS가 선형적으로 증가합니다.
    • 쿼리노드 복제본을 1개에서 8개로 확장할 때 QPS는 선형적으로 증가합니다.

용어

테스트에 사용된 용어에 대한 자세한 내용을 보려면 클릭하세요.
용어 설명
nq 한 번의 검색 요청으로 검색할 벡터의 수입니다.
topk 검색 요청에서 각 벡터에 대해 검색할 가장 가까운 벡터의 수(nq 단위)
ef HNSW 인덱스에 특정한 검색 파라미터
RT 요청을 전송한 후 응답을 받기까지의 응답 시간
QPS 초당 성공적으로 처리된 검색 요청 수

테스트 환경

모든 테스트는 다음 환경에서 수행됩니다.

하드웨어 환경

하드웨어사양
CPU인텔® 제온® 골드 6226R CPU @ 2.90GHz
메모리16*\32GB RDIMM, 3200 MT/s
SSDSATA 6Gbps

소프트웨어 환경

소프트웨어버전
Milvusv2.2.0
Milvus GO SDKv2.2.0

배포 체계

  • Milvus 인스턴스(독립형 또는 클러스터)는 물리적 또는 가상 머신을 기반으로 하는 Kubernetes 클러스터에 헬름을 통해 배포됩니다.
  • 다른 테스트는 단지 CPU 코어 수, 메모리 크기, 복제본(워커 노드) 수에 차이가 있을 뿐이며, 이는 Milvus 클러스터에만 적용됩니다.
  • 지정되지 않은 구성은 기본 구성과 동일합니다.
  • Milvus 종속성(MinIO, Pulsar 및 Etcd)은 각 노드의 로컬 SSD에 데이터를 저장합니다.
  • 검색 요청은 Milvus GO SDK를 통해 Milvus 인스턴스로 전송됩니다.

데이터 세트

이 테스트는 ANN-Benchmarks의 오픈 소스 데이터 세트 SIFT(128개 차원)를 사용합니다.

테스트 파이프라인

  1. 각 테스트에 나열된 각 서버 구성으로 헬름으로 Milvus 인스턴스를 시작합니다.
  2. Milvus GO SDK를 통해 Milvus 인스턴스에 연결하고 해당 테스트 결과를 얻습니다.
  3. 컬렉션을 생성합니다.
  4. 1백만 개의 SIFT 벡터를 삽입합니다. M 을 8 으로, efConstruction 을 200 으로 설정하여 HNSW 인덱스를 빌드하고 인덱스 파라미터를 구성합니다.
  5. 컬렉션을 로드합니다.
  6. 검색 매개변수 nq=1, topk=1, ef=64 를 사용하여 다른 동시 수로 검색하며, 각 동시 지속 시간은 최소 1시간입니다.

테스트 결과

Milvus 2.2.0 대 Milvus 2.1.0

클러스터

서버 구성(클러스터)yaml queryNode: replicas: 1 resources: limits: cpu: "12.0" memory: 8Gi requests: cpu: "12.0" memory: 8Gi

검색 성능

MilvusQPSRT(TP99) / msRT(TP50) / ms실패/s
2.1.0690459280
2.2.01024863240

Cluster search performance 클러스터 검색 성능

독립형

서버 구성(독립형)yaml standalone: replicas: 1 resources: limits: cpu: "12.0" memory: 16Gi requests: cpu: "12.0" memory: 16Gi

검색 성능

MilvusQPSRT(TP99)/msRT(TP50) / ms실패/s
2.1.04287104760
2.2.07522127790

Standalone search performance 독립형 검색 성능

Milvus 2.2.0 스케일업

하나의 쿼리노드에서 CPU 코어를 확장하여 확장 기능을 확인합니다.

서버 구성(클러스터)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

검색 성능

CPU 코어동시 접속자 수QPSRT(TP99)/msRT(TP50) / msfail/s
85007153127830
123001024863240
166001413585420
326002028163280

Search performance by Querynode CPU cores 쿼리노드 CPU 코어별 검색 성능

Milvus 2.2.0 스케일 아웃

더 많은 쿼리노드로 더 많은 복제본을 확장하여 스케일아웃 기능을 확인합니다.

참고: 컬렉션을 로드할 때 쿼리노드 수는 replica_number 과 같습니다.

서버 구성(클러스터)yaml queryNode: replicas: 1 / 2 / 4 / 8 resources: limits: cpu: "8.0" memory: 8Gi requests: cpu: "8.0" memory: 8Gi

복제본동시 수QPSRT(TP99) / msRT(TP50) / msfail/s
15007153127830
250015903105270
480019281109400
812003065593380

Search performance by Querynode replicas 쿼리노드 복제본별 검색 성능

다음 단계

  • 이 가이드를 참조하여 Milvus 2.2.0 벤치마크 테스트를 직접 수행해 보세요. 단, 이 가이드에서는 Milvus 2.2 및 Pymilvus 2.2를 사용해야 한다는 점을 참고하세요.

번역DeepL

관리형 Milvus를 무료로 사용해 보세요

Zilliz Cloud는 번거로움이 없으며, Milvus 기반으로 10배 더 빠릅니다.

시작하기
피드백

이 페이지가 도움이 되었나요?