ETC

MongoDB와 ElasticSearch 테스트 (용량, 속도)

SongMinu 2021. 3. 25. 14:05
728x90

테스트 환경

windows10 pro (라데온 3600에 램 32기가 지포스 2070 슈퍼)

docker desktop for windows

 

도커 이미지는

몽고디비 lastest (테스트 collection의 모든 필드에 index를 지정해줌)

엘라스틱 7.12.0 버전 (테스트 인덱스의 샤드는 1 리플리카는 0)

이렇게 사용했고 본인 컴퓨터에다가 이미지를 실행시켜서 테스트를 진행했다.

 

테스트 방법

둘 다 동일한 형태로 동일한 데이터 100만 건을 넣어서 처리시간 및 용량 체크를 해봤다.

데이터 필드는

날짜 포맷 2개, 단순 텍스트 포맷(몽고:  String,  엘라스틱: keyword) 8개, 숫자 포맷 5개 

이렇게 구성되어 있고 데이터를 넣을 땐 둘 다 bulk 기능을 사용했다.

 

한번 bulk 할 때 5000개의 데이터를 세팅해 주었고, 5초의 sleep을 주었고,

while 문으로 100만 건이 될 때까지 반복시켰다.

 

처리 시간

몽고DB 처리 로그

위 사진은 몽고디비 데이터 처리할 때 찍은 로그이다.

run의 시간은 5000개의 데이터를 처리하는데 걸린 시간이고

runTotal은 100만 개 데이터를 처리하는데 걸린 시간이다.

보통 1~2초대의 시간이 걸렸고 늦을 땐 3초 대, 정말 가끔 그 이상 시간도 있었다.

엘라스틱 처리 로그

위 사진은 엘라스틱 데이터 처리할 때 찍은 로그이다.

run의 시간은 5000개의 데이터를 처리하는데 걸린 시간이고

runTotal은 100만 개 데이터를 처리하는데 걸린 시간이다.

보통 1초 미만에서 1초대의 시간이 걸렸고 늦으면 2초 때도 있었다.

1초 미만의 시간대가 더 많긴 했다.

 

일단 전체적으로 처리 속도는 엘라스틱이 더 빨랐다.

 

용량

먼저 엘라스틱

crebro에서 확인한 인덱스 용량

세레브로에서 100만 건을 넣은 인덱스의 데이터를 확인하니 72.55MB가 나왔다.

도커 이미지에 들어가서 데이터가 저장되는 곳에선 용량이 435MB인가 그랬는데 왜 이리 차이가 나지? 했었는데

세레브로에서 인덱스를 클리어 캐시를 적용을 한 후 다시 보니깐 세레브로에 표기된 용량과 비슷했다.

정확한 이유는 찾아봐야 알 것 같다.

 

몽고 디비는

저 사이즈를 MB로 변환하면 대략 454MB가 된다.

몽고디비도 도커 이미지에 들어가서 데이터가 저장되는 곳에서 확인해보니 용량은 사진과 비슷했다.

 

어느 정도 차이가 있을 거라고 생각하긴 했는데 생각했던 것 보다 이렇게 많이 차이가 날줄은 몰랐다.

반응형

'ETC' 카테고리의 다른 글

윈도우노트북에 유용했던 단축키와 터치패드 그리고 기능들  (4) 2022.02.12
2021년 그리고 2022년  (2) 2022.01.01
HTTPS  (0) 2021.01.15
RESTful API  (0) 2021.01.15
해시 함수 (hash function)  (0) 2020.12.31