목록 보기
CPU 뼛속까지 써먹고, Milvus 사이징 기준을 만들기까지
데브옵스

CPU 뼛속까지 써먹고, Milvus 사이징 기준을 만들기까지

토스
토스
2026년 10월 12일

두줄요약

Milvus 벡터 검색의 품질·처리량 기준으로 HNSW_SQ8을 선택하고 NUMA 배치를 최적화했습니다.\n같은 자원에서 QPS를 41% 높이고 검색 조건 기반 서버 사이징 기준을 만들었습니다.

문제 상황

  • 온프레미스 Milvus 환경에서 검색 품질·응답 속도·처리량을 만족하는 CPU·메모리 및 서버 규모 산정 필요
  • 워크로드별 벡터 차원, top-k, recall 목표, 데이터 갱신 빈도 차이로 공개 QPS만으로 사이징 곤란

선택 이유

  • 컴포넌트별 독립 확장 가능한 MPP 구조와 다양한 인덱스·GPU 검색 지원을 고려한 Milvus 선택
  • LAION-100M, recall@10 0.95 이상, 300 QPS 이상 조건에서 HNSW_SQ8이 316 QPS·replica당 약 114GB로 목표 충족

구조와 흐름

  • HNSW_SQ8의 후보 탐색 범위 ef와 recall·처리량을 함께 측정하고 QueryNode의 CPU·메모리 접근 분석
  • CPU·메모리를 동일 NUMA node에 배치하고 kubelet CPU Manager·Memory Manager·Topology Manager 정책 조합
  • 벡터 차원·건수·검색 설정·목표 QPS를 입력받아 처리량과 메모리 기준 중 큰 서버 대수를 선택하는 시뮬레이터 구성

성능/운영 포인트

  • NUMA 배치로 remote DRAM 비율 약 50%에서 0.8%, IPC 0.37에서 0.55로 개선
  • recall@10 0.9541 유지 상태에서 3노드 합산 QPS 405에서 572로 41% 향상, p99 측정 구간 최댓값 48% 감소
  • 실제 서비스 데이터 기반 recall·QPS·지연시간 재검증 및 장애·점검 여유 용량 별도 반영 필요

토스 계열사 채용156건

채용 사이트에서 전체 보기

다음 읽기

#Milvus 주제를 이어서 읽기

CPU 뼛속까지 써먹고, Milvus 사이징 기준을 만들기까지

Milvus 벡터 검색에서 HNSW_SQ8과 NUMA 배치를 최적화해 품질을 유지하며 QPS를 41% 높였습니다. 검색 조건과 자원 측정값을 연결해 서버 사이징 기준을 만들었습니다.

토스
토스
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...