[Qdrant] 성능 벤치마크

도입에 앞서서 간단히 성능 테스트를 좀 해봤다.

테스트에 사용한 코드는 깃헙에 있다.
https://github.com/myyrakle/benchmarks/tree/master/vector_search



데이터 세팅

1000만개 정도만 넣어봤다.
벡터는 랜덤으로 만들고, brand_name과 category_id라는 페이로드도 넣어봤다.

다 넣는데는 7시간이 좀 넘게 걸렸다.

메모리 사용량 측면에서는 꽤 괜찮아보였다.

다른 DB들은 메모리를 거의 다 폭식했는데, 이건 초기화 후에 좀 잠잠해지니 1기가 조금 넘는 정도로도 유지가 됐다. 디스크 I/O도 적은 편이었다.


디스크는 12기가 정도를 점유했다.
비교해보니 다른 DB들은 보통 이거보다 2배 정도를 더 썼다.

하지만 인덱스가 데워지는데는 딜레이가 좀 있는 것 같다.

초기에 세그먼트가 인덱스로 로드되는데 시간이 좀 걸리는 것인지, 처음에는 초단위로 딜레이가 걸린 시기가 있었다.


하지만 좀 지나고 나서 돌려보니 두자릿수 밀리초 단위로 동작이 되더라.

벤치마크를 적당히 돌렸을 때는 세자릿수 밀리초 단위로 밀릴 때도 있지만, 그런대로 납득 가능한 정도의 처리 시간이 나왔다.

게다가, 페이로드 인덱스를 잘 구성했다는 전제 하에서는 필터링+벡터 검색 또한 밀리초 단위로 처리가 잘 됐다.

막 엄청나다고 할 정도의 성능까진 아니지만, 적은 디스크와 메모리 사용량이 좀 돋보이는 것 같았다.



비교글
https://blog.naver.com/sssang97/223840387576