Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그
CPU 뼛속까지 써먹고, Milvus 사이징 기준을 만들기까지 섬네일

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

토스 favicon토스·Architecture·
KubernetesMilvusHNSWIVFDISKANN
2026년 10월 12일0

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

토스가 Milvus 기반 벡터 검색의 자원 사이징 기준을 구축하기 위해, 1억 건 LAION-100M 데이터의 768차원 벡터를 대상으로 벡터 인덱스(HNSW/IVF/DISKANN)와 SQ8 양자화를 비교했습니다. Milvus 2.6 아키텍처의 StreamingNode/QueryNode/DataNode 구성을 활용하고, 3대 전용 서버에서 recall@10 ≥ 0.95를 목표로 실험했습니다. NUMA 최적화를 통해 QPS를 크게 끌어올리고 지연을 줄였습니다.

구현 방법

  • Milvus 2.6 아키텍처: StreamingNode(실시간 적재/검색), QueryNode( sealed 데이터 검색), DataNode(인덱스 빌드/컴팩션) 분리 운영
  • 데이터셋 및 벡터 차원: LAION-100M, 768차원(또는 사례로 1024차원 비교)
  • 인덱스/검색 구성: HNSW_SQ8, IVF_SQ8, DISKANN 등과 SQ8 압축 처리
  • 하드웨어: 토스의 전용 서버 3대, Intel Xeon Silver 4516Y+ 2소켓 구성, 서버당 물리 코어 48개/메모리 512GB, QueryNode 48 vCPU/256GiB
  • NUMA 최적화: CPU/메모리의 NUMA 로컬 배치(QueryNode CPU와 인덱스 메모리 NUMA Node 0 배치), CPUManager/MemoryManager/TopologyManager 조합
  • 측정 방식: recall@10 ≥ 0.95를 기준으로 QPS 및 지연시간 비교

주요 결과

  • recall@10 ≥ 0.95를 만족하는 설정에서 QPS가 316까지 상승하는 등 품질과 처리량을 함께 달성
  • HNSW_SQ8의 replica당 메모리 약 114GB 사용
  • NUMA 배치 전후로 remote DRAM 비율 약 50%→0.8%로 감소, IPC 0.37→0.55, QPS 405→572(+41%), p99 지연 3.94s→2.04s
  • 1024차원 벡터 1억 건은 벡터 값만으로 약 410GB 필요, 이를 고려한 메모리 설계가 필요
  • 자원 가변성에 맞춘 시뮬레이터로 필요한 서버 수를 예측하고 운영 규모를 산정하는 기반을 마련

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
Amazon OpenSearch Service로 미리캔버스의 듀얼 벡터 검색 도입과 성능 최적화 섬네일
77%

Amazon OpenSearch Service로 미리캔버스의 듀얼 벡터 검색 도입과 성능 최적화

AWS faviconAWS·2026년 07월 05일
No Image
75%

우리 팀만의 vLLM 플러그인 만들기 1편 - 검색 AI 모델 서빙 성능 극대화하기

NAVER D2 faviconNAVER D2·2026년 08월 10일
실리콘투의 사내 지식 MCP 게이트웨이 구축기 섬네일
74%

실리콘투의 사내 지식 MCP 게이트웨이 구축기

AWS faviconAWS·2026년 08월 18일