컬렉션 메모리 사용량 모니터링
컬렉션 메모리 사용량 모니터링 (ops-monitoring-memory-usage)
v1.18.0부터 사용 가능한 기능이에요.
Qdrant는 컬렉션의 디스크 공간, RAM, OS 페이지 캐시 사용량을 클러스터 전체에 걸쳐 합산하고, 구성 요소별로 세분화해서 볼 수 있게 해 줘요. 이를 통해 용량을 계획하거나, 메모리 압박을 진단하거나, 컬렉션의 어떤 부분이 메모리에 상주하는지 파악할 수 있어요.
이 정보는 Qdrant Web UI와 API를 통해 모두 확인할 수 있어요.
Web UI
컬렉션 상세 페이지를 열고 Memory 탭을 선택해요. 컬렉션의 메모리 분해 내역이 필요할 때마다 갱신되어 보여요.
Memory 탭은 컬렉션의 각 구성 요소에 대한 디스크, RAM, 캐시 사용량의 분해 내역을 보여줘요.
필드 이해하기
분해 내역은 다음과 같은 구성 요소를 다뤄요:
| 구성 요소 | 설명 |
|---|---|
| Total | 모든 구성 요소의 합계. |
| Vectors | 밀집 및 멀티-밀집 벡터별: 스토리지, 인덱스, 그리고 선택적으로 양자화. |
| Sparse Vectors | 희소 벡터별: 스토리지와 인덱스. |
| Payload | 페이로드 스토리지. |
| Payload Index | 페이로드 필드 인덱스별. |
| ID Tracker | 외부 point ID를 내부 ID로 매핑. |
각 구성 요소는 네 가지 값을 보고해요:
| 필드 | 설명 |
|---|---|
| Disk | 디스크의 총 파일 크기. |
| RAM | 비-제거 가능(non-evictable) 힙 RAM: 메모리 매핑 파일로 뒷받침되지 않는 인메모리 데이터 구조. |
| Cached | 제거 가능(evictable) RAM: 현재 OS 페이지 캐시에 상주하는 파일 페이지. |
| Expected Cache | 최상의 성능을 위해 이상적으로 캐시되어야 하는 데이터의 양. 이 값을 Cached와 비교하면 워킹 셋(working set) 중 얼마나 '따뜻한' 상태인지 알 수 있어요. |
이 값들은 대략적으로 구성 요소별로 사용할 수 있는 메모리 계층과 대응돼요:
pinned구성 요소는 전체 크기를 RAM으로 보고해요.cached구성 요소는 미리 로드되며, 일반적으로 Cached 아래에 나타나요. 다만 메모리 압박 시 제거된 페이지는 Disk로 돌아가요.cold구성 요소는 Qdrant가 미리 로드하지 않으므로 주로 Disk로 나타나요. 다만 실제 접근으로 OS가 페이지를 워밍업하면 Cached 아래에도 나타날 수 있어요.
API
동일한 데이터를 Qdrant의 API로도 조회할 수 있어요:
curl http://localhost:6333/collections/{collection_name}/memory
정확도 (Accuracy)
보고되는 값은 추정치예요. RAM 사용량은 서드파티 라이브러리와 할당자(allocator) 자체가 할당한 메모리가 계산에 포함되지 않기 때문에 일반적으로 10~15% 과소평가돼요.
비-Unix 시스템에서는 Cached가 항상 0으로 보고돼요.
더 알아보기 (Learn more)
- Qdrant 공식문서 - Monitor Collection Memory Usage
- 컬렉션 메모리 관련 모니터링 지표에 대해 더 알아보려면 Qdrant의 모니터링 문서를 참고하세요.