Docs Menu
Docs Home
/ /

추가 성능 권장 사항

이 페이지에서는 MongoDB Vector Search 쿼리의 성능을 개선하기 위한 추가 권장 사항을 제공합니다.

Hierarchical Navigable Small Worlds 는 벡터 데이터가 메모리에 저장되어 있을 때 효율적으로 작동합니다. 데이터 노드에 벡터 데이터와 인덱스를 저장할 수 있는 충분한 RAM 있는지 확인해야 합니다.데이터 격리 없이 워크로드 격리 위해 별도의 검색 노드를 배포하여 벡터 검색 사용 사례에서 메모리를 보다 효율적으로 사용할 수 있습니다.

임베딩 모델
벡터 차원
공간 요구 사항

Voyage AI voyage_3_large

2048

8kb (for float)
2.14kb (for int8)
0.334kb (for int1)

OpenAI text-embedding-ada-002

1536

6kb

Google text-embedding-gecko

768

3kb

Cohere embed-english-v3.0

1024

4kb (for float)
1.07kb (for int8)
0.167kb (for int1)

BinData 양자화된 벡터. 자세한 내용은 양자화된 벡터 수집을 참조하세요.

MongoDB Vector Search가 소비하는 CPU, 메모리 및 디스크 리소스의 양은 인덱스 크기 및 쿼리 기준 등 여러 요인에 따라 달라집니다. 벡터 검색 상태와 성능을 이해하고 적절한 인프라 용량 확인하고 이상 징후를 식별하려면 환경을 모니터 것이 중요합니다.

다음 지표 사용하여 MongoDB Vector Search 인덱스 및 쿼리의 성능을 관찰하고 개선할 수 있습니다.

MongoDB Vector Search 인덱스에서 사용하는 총 RAM 양을 모니터링합니다. 디스크로 이동하는 쿼리는 성능이 훨씬 떨어지므로 충분한 RAM MongoDB Vector Search 쿼리 성능에 매우 중요합니다. 전체 인덱스 가 메모리에 들어갈 수 있는지 확인합니다.

사용 가능한 가 항상 사용된 보다 큰지 System Memory System Memory 확인합니다. 인덱스 자주 쿼리되지 않는 경우 모든 인덱스 메모리에 있지 않을 수 있습니다. 따라서 System Memory 지표를 Index Size 지표와 함께 활용하여 프로비저닝 최적화하세요.

벡터 인덱스 크기가 3 GB 초과하는 경우 전체 인덱스 아닌 인덱스 의 4%만 메모리에 저장하는 벡터 양자화를 권장합니다.

디스크에 있는 모든 인덱스의 총 크기(바이트)를 모니터링합니다. 이는 RAM 요구 사항의 크기를 정확하게 지정했는지 확인하는 데 필요합니다.

디스크 메트릭에서 Index Size 검색 메트릭을 확인하여 100벡터의 %가 메모리에 저장되어 있는 경우 전체 인덱스 크기가 얼마인지 확인하고 사용 가능한 시스템 메모리보다 작은지 확인합니다.

선택한 샘플 기간 동안 프로세스 의 초당 평균 페이지 오류 비율을 모니터링합니다. Page Faults 지표는 검색 쿼리 디스크로 이동하는 빈도를 나타내며, 이는 전체 인덱스 메모리에 맞지 않음을 나타냅니다.

이 지표는 가능한 한 0에 가깝게 유지되어야 합니다. 페이지 오류가 지속적으로 표시되면 클러스터 계층 확장 하여 적절한 RAM 프로비저닝하는 것이 좋습니다.

전용 검색 노드를 사용하지 않고 벡터 검색 수행하는 경우,Hierarchical Navigable Small Worlds 그래프 탐색할 때 쿼리가 처음에 디스크에서 무작위 검색을 수행하고 벡터 값을 메모리로 읽습니다. 검색 노드를 사용할 때 이 캐시 워밍업은 일반적으로 인덱스 다시 작성하는 이벤트 , 일반적으로 예약된 유지 관리 기간 동안에만 발생합니다.

벡터 임베딩은 인덱싱 중에 계산 리소스를 소비합니다. 대규모 데이터 세트에 대한ENN 쿼리는 CPU 리소스를 소비합니다. 따라서 인덱싱 과 쿼리를 동시에 수행하면 리소스 병목 현상이 발생할 수 있습니다. CPU 병목 현상을 방지하려면 쿼리가 실행 중일 때 인덱싱 벡터를 피하세요. 초기 동기화 수행할 때는 테스트 쿼리를 실행하기 전에 검색 노드 CPU 사용량이 0%에 가깝게 반환되는지, 세그먼트가 병합 및 디스크로 플러시되었는지 확인하세요.

인덱싱 많으면 CPU 사용량이 증가하므로 인덱싱 작업 중에 Search Normalized Process CPU 지표를 모니터링합니다. 이 지표는 사용 가능한 CPU 코어 수에 대해 정규화된 백분율로 CPU 사용량을 표시하며, 이를 통해 클러스터의 용량 기준으로 한 리소스 포화도를 평가할 수 있습니다. 벡터 임베딩이 인덱싱된 후 세그먼트 병합 및 플러시가 완료되면 CPU 사용량이 0%에 가까워질 때까지 기다립니다.

돌아가기

벤치마크 결과

이 페이지의 내용