토스증권, NUMA 배치 최적화로 Milvus 검색 처리량 41% 향상
핵심 내용
remote DRAM 접근 비율을 50%에서 0.8%로 낮춰 같은 자원에서 성능을 끌어올렸다.
자세히 보기
토스증권 Data Infra 팀은 온프레미스 환경에서 Milvus 기반 벡터 검색 서비스를 운영하기 전, 필요한 서버 자원을 정확히 산정하기 위해 실험을 진행했다. 초기에는 공개 벤치마크의 QPS만으로는 실제 워크로드의 자원 사용량을 예측하기 어려웠으며, 검색 품질(recall)과 처리량(QPS)을 동시에 만족하는 최적의 구성을 찾아야 했다.
NUMA 구조와 CPU 대기 시간 분석
실험 결과, CPU 사용률이 높음에도 처리량이 정체되는 현상을 발견했다. IPC(Instructions Per Cycle)를 측정해 보니 0.37로 낮았으며, 이는 CPU가 데이터를 기다리는 시간이 많음을 시사했다. HNSW 인덱스 특성상 메모리 접근 패턴이 불규칙하여, NUMA(Non-Uniform Memory Access) 구조에서 반대 소켓의 메모리를 읽는 remote DRAM 접근 비율이 약 50%에 달했다.
NUMA 배치 최적화 결과
쿠버네티스의 CPU Manager, Memory Manager, Topology Manager를 활용해 QueryNode의 CPU와 메모리를 같은 NUMA 노드에 배치했다. 그 결과 remote DRAM 접근 비율은 **0.8%**로 급감했고, IPC는 0.55로 상승했다. 같은 하드웨어 자원과 recall@10 0.954 조건에서 QPS는 41% 증가했으며, p99 지연시간은 48% 단축되었다.
사이징 기준 수립
최적화된 구성을 바탕으로 벡터 차원과 검색 설정(ef 값)에 따른 처리량 변화를 측정했다. 차원이 두 배가 되면 처리량은 약 3분의 1로 줄어드는 경향을 확인했으며, 이를 반영해 서버 대수를 계산하는 시뮬레이터를 개발했다. 이를 통해 새로운 서비스 도입 시 요구사항에 맞는 정확한 서버 규모를 사전에 산정할 수 있게 되었다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.