🚀 완전 관리형 Milvus인 Zilliz Cloud를 무료로 체험해보세요—10배 더 빠른 성능을 경험하세요! 지금 체험하기>>

milvus-logo
LFAI
  • Home
  • Blog
  • Milvus 2.1 벤치마킹을 위한 빠른 가이드

Milvus 2.1 벤치마킹을 위한 빠른 가이드

  • Engineering
August 16, 2022
Yanliang Qiao

Cover Cover

최근 Milvus 2.1의 벤치마크 보고서를 업데이트했습니다. 백만 개의 벡터 데이터 세트를 사용한 테스트에서 작은 크기의 쿼리를 병합하면 QPS를 크게 향상시킬 수 있다는 것이 입증되었습니다.

다음은 테스트를 쉽게 재현할 수 있는 몇 가지 간단한 스크립트입니다.

절차

  1. Milvus 독립형 또는 클러스터를 배포합니다. 이 경우 Milvus 서버의 IP 주소는 10.100.31.105입니다.

  2. 클라이언트를 배포합니다. 이 경우 배포에 Ubuntu 18.04와 Python 3.8.13을 사용합니다. 다음 코드를 실행하여 PyMilvus 2.1.1을 설치합니다.

pip install pymilvus==2.1.1
  1. 다음 파일을 다운로드하여 클라이언트와 동일한 작업 디렉토리에 복사합니다. 이 경우 작업 디렉터리는 /go_ben 입니다.

    참고:

    • benchmarkbenchmark-mac 은 Go SDK 2.1.1을 사용하여 개발 및 컴파일된 실행 파일입니다. 이 파일들은 동시 검색을 수행하는 데만 사용됩니다.

    • 우분투 사용자의 경우 benchmark, macOS 사용자의 경우 benchmark-mac 을 다운로드하세요.

    • benchmark 또는 benchmark-mac 에 액세스하려면 실행 권한이 필요합니다.

    • Mac 사용자는 시스템 환경설정에서 보안 및 개인정보 보호를 구성하여 benchmark-mac 파일을 신뢰해야 합니다.

    • 동시 검색에 대한 설정은 go_benchmark.py 소스 코드에서 찾아 수정할 수 있습니다.

  1. 컬렉션을 만들고 벡터 데이터를 삽입합니다.
root@milvus-pytest:/go_ben# python collection_prepare.py 10.100.31.105 
  1. /tmp/collection_prepare.log 을 열어 실행 결과를 확인합니다.
...
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. benchmark (또는 macOS의 경우 benchmark-mac )를 호출하여 동시 검색을 수행합니다.
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. 현재 디렉토리 아래 go_log_file.log 파일을 열어 자세한 검색 로그를 확인합니다. 검색 로그에서 확인할 수 있는 검색 정보는 다음과 같습니다.
    • reqs: 동시 검색이 발생한 시점부터 현재 시점까지(현재 시간 범위) 검색 요청 수

    • fails: 현재 시간 범위에서 요청의 백분율로 표시된 실패한 요청 수입니다.

    • 평균: 현재 시간 범위의 평균 요청 응답 시간(단위: 밀리초)

    • 최소: 현재 시간 범위의 최소 요청 응답 시간(단위: 밀리초)

    • 최대: 현재 시간 범위의 최대 요청 응답 시간(단위: 밀리초)

    • 중앙값: 현재 시간 범위의 요청 응답 시간 중앙값(단위: 밀리초)

    • req/s: 초당 요청 수(예: QPS)

    • failures/s: 현재 시간 범위에서 초당 평균 실패한 요청 수입니다.

스크립트 및 실행 파일 다운로드

다음 단계

Milvus 2.1의 공식 출시와 함께 새로운 기능을 소개하는 블로그 시리즈를 준비했습니다. 이 블로그 시리즈에서 자세히 읽어보세요:

Try Managed Milvus for Free

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

Get Started

Like the article? Spread the word

계속 읽기