Springboot 를 사용하다보니 주로 springboot+java+mysql(mariadb) 조합을 주력적으로 사용하게 되었는데 2년 전쯤 대용량 트래픽과 Non Blocking IO에 대해서 한 번 공부를 할 계기가 있었는데 그 당시에 자료만 찾아보고 구현만 대강 해보고 말았는데 이번에 구현도 해보고 각 db를 썼을 때 어떤 성능의 차이가 있는지 성능 테스트를 해보았다.
Springboot 및 각 DB 에 대한 자료는 아래 github 를 참고하시면 될 것 같습니다. 그냥 가볍게 membership이라는 테이블의 데이터를 일괄 조회하는 형태입니다.
GitHub - hyeongminju/db-performance-test
Contribute to hyeongminju/db-performance-test development by creating an account on GitHub.
github.com
결론부터 말하자면 아래와 같습니다. 대강 h2와 mongodb는 비슷하고 mysql 은 성능이 떨어진다.
아무래도 논-블로킹을 지원하는 Datasource 를 쓸 때에 의미가 있는 아키텍처일 것 같다.
테스트는 Postman 으로 Collection 메뉴에서 햄버거 버튼(3점 버튼)을 눌러서 Run Collection 을 수행하여 나오는 Performance Test 를 수행하였다.
100유저 Spike Base User 50

100유저 Spike Base User 80

100유저 Spike Base User 50

100유저 Spike Base User 80

100유저 Spike Base User 50

100유저 Spike Base User 80

댓글