Skip to content

Capacity Planning

1. 메모리(RAM) 산정

벡터를 모두 메모리에 적재해 최적의 검색 속도를 내고 싶다면 다음 식으로 대략적인 RAM 용량을 계산할 수 있다.

메모리 = 벡터 수 × 차원 수 × 4바이트 × 1.5

마지막 1.5배는 HNSW 그래프·메타데이터·임시 세그먼트 등 부가 오버헤드를 고려한 값이다.
예를 들어 1,000,000개의 1,024차원 벡터를 메모리에 올린다면

1,000,000 × 1,024 × 4 × 1.5 ≒ 5.7 GB

  • 양이 방대하다면 양자화(Quantization)를 적용해 필요한 RAM을 추가로 줄일 수 있다.

  • 메모리에 올릴 벡터 양을 절반으로 줄이면 지연 시간(latency)이 대략 2배 증가한다고 가정하면 된다.

2. 페이로드 크기 산정

페이로드는 데이터 구조에 따라 편차가 크다.

타입 예시 크기 설명
문자열 길이에 비례 텍스트 길이와 인코딩 방식에 영향
int64/float64 8 B 숫자형
bool 1 B 불리언

페이로드 총 크기는 다음 식으로 추정한다.

총 페이로드 = 포인트 수 × 단일 페이로드 크기 × 1.5

예를 들어 5 KB JSON 페이로드를 가진 1 M 포인트라면 약 4.77 GB를 예상한다.

3. RAM ↔ 디스크 배치 전략

시나리오 권장 설정
대규모 벡터, 평균 지연 허용 메모리 매핑(mmap). 벡터는 디스크에 두고 자주 조회되는 일부만 캐시
다중 테넌트/서브그룹 검색 메모리 매핑 + 테넌트별 서브셋만 캐시
전체를 메모리에 충분한 RAM 확보, 앞의 계산식 참고

디스크 I/O 속도 역시 성능에 큰 영향을 미친다. Qdrant Cloud 고용량 검색이 필요하다면 문의를 권장한다.

4. 디스크 확장(Qdrant Cloud)

UI에서 Scale Up 기능으로 디스크를 늘릴 수 있다.
한 번 늘린 디스크는 줄일 수 없으므로 계획적으로 결정해야 한다.

확장 이점

  • 더 큰 데이터셋 저장 → 검색 품질 향상

  • HNSW 등 고급 인덱스 적용

  • RAM 여유 증가 → 캐싱 효율 향상

  • 백업 및 중복성 확보

5. 요약 계산 식

항목
벡터 메모리 N_vectors × dim × 4B × 1.5
페이로드 메모리 N_points × payload_size × 1.5
서브그룹 메모리 N_active_vectors × dim × 4B × 1.5

모든 수치는 추정치이므로 실제 데이터로 프로파일링하여 검증하는 것이 가장 정확하다.