이 페이지에서는 MongoDB Vector Search 검색 쿼리의 성능을 개선하기 위한 추가 권장 사항을 제공합니다.
충분한 메모리 확보
Hierarchical Navigable Small Worlds는 벡터 데이터가 메모리에 저장되어 있을 때 효율적으로 작동합니다. 데이터 노드에 벡터 데이터와 인덱스를 저장할 수 있는 충분한 RAM 있는지 확인해야 합니다. 벡터 검색 사용 사례에서 메모리를 보다 효율적으로 사용할 수 있도록 데이터 격리 없이 워크로드 격리 위해 별도의 검색 노드를 배포하는 것이 좋습니다.
임베딩 모델 | 벡터 차원 | 공간 요구 사항 |
|---|---|---|
Voyage AI | 2048 | 8kb ( |
OpenAI | 1536 | 6kb |
Google | 768 | 3kb |
Cohere | 1024 | 4kb ( |
BinData quantized vectors. To learn more, see Ingest Quantized Vectors.
MongoDB 벡터 검색이 소비하는 CPU, 메모리 및 디스크 리소스의 양은 인덱스 크기 및 쿼리 기준 등 여러 요인에 따라 달라집니다. 벡터 검색 상태와 성능을 이해하고 적절한 인프라 용량 확인하고 이상 징후를 식별하려면 환경을 모니터 하는 것이 중요합니다.
다음 지표를 사용하여 MongoDB Vector Search 검색 인덱스 및 쿼리의 성능을 관찰하고 개선할 수 있습니다.
시스템 메모리 검색
MongoDB Vector Search 검색 인덱스에서 사용하는 총 RAM 양을 모니터링합니다. 디스크로 이동하는 쿼리는 성능이 훨씬 떨어지므로 충분한 RAM은 MongoDB 벡터 검색 쿼리 성능에 매우 중요합니다. 전체 인덱스 가 메모리에 들어갈 수 있는지 확인합니다.
Ensure that available System Memory is always greater than used System Memory. If the index is not frequently queried, not all of the index might be in memory. Therefore, leverage the System Memory metric in conjunction with the Index Size metric to optimize provisioning.
벡터 인덱스 크기가 3 GB 초과하는 경우 전체 인덱스 아닌 인덱스의 4%만 메모리에 저장하는 벡터 양자화를 권장합니다.
검색 인덱스 크기
디스크에 있는 모든 인덱스들의 총 크기(바이트)를 모니터합니다. 이는 RAM 요구 사항의 크기를 정확하게 지정했는지 확인하는 데 필요합니다.
Verify the search Index Size on disk metric to see what the full index size would be if 100% of the vector is stored in memory, and ensure that it is less than the system memory available.
페이지 오류 검색
선택한 샘플 기간 동안 프로세스의 초당 평균 페이지 오류 비율을 모니터합니다. Page Faults 지표는 검색 쿼리 디스크로 이동하는 빈도를 나타내며, 이는 전체 인덱스 메모리에 맞지 않음을 나타냅니다.
이 지표는 가능한 한 0에 가깝게 유지되어야 합니다. 페이지 오류가 지속적으로 표시되면 클러스터 계층 확장 하여 적절한 RAM 프로비저닝하는 것이 좋습니다.
파일 시스템 캐시 워밍업
전용 검색 노드를 사용하지 않고 벡터 검색 수행하는 경우,Hierarchical Navigable Small Worlds 그래프 탐색할 때 쿼리가 처음에 디스크에서 무작위 검색을 수행하고 벡터 값을 메모리로 읽습니다. 검색 노드를 사용할 때 이 캐시 워밍업은 일반적으로 인덱스 다시 작성하는 이벤트 , 일반적으로 예약된 유지 관리 기간 동안에만 발생합니다.
CPU 병목 현상 모니터
벡터 임베딩은 인덱싱 중에 컴퓨팅 리소스를 소비합니다. 등가 최근접 이웃 쿼리는 대규모 데이터 세트에서 CPU 리소스를 소비합니다. 따라서 인덱싱과 쿼리 작업을 동시에 수행하면 리소스 병목 현상이 발생할 수 있습니다. CPU 병목 현상을 방지하려면 쿼리가 실행 중일 때 벡터 인덱싱을 피하세요. 초기 동기화를 수행할 때, 테스트 쿼리를 실행하기 전에 검색 노드의 CPU 사용률이 세그먼트가 병합되고 디스크로 플러시된 상태임을 나타내는 약 0% 수준으로 돌아왔는지 반드시 확인하세요.
Monitor the Search Normalized Process CPU metric during indexing operations, as heavy indexing will show elevated CPU usage. This metric shows the CPU usage as a percentage normalized against the number of available CPU cores, which enables you to assess the resource saturation relative to your cluster's capacity. After vector embeddings have been indexed, wait for the CPU usage to return close to 0% as segment merging and flushing complete.