milvus-logo
LFAI
홈페이지
  • 밀버스 소개

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 벡터를 삽입합니다. M8 으로, efConstruction200 으로 설정하여 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

Try Managed Milvus for Free

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

Get Started
피드백

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