프로젝트의 성능 테스트를 진행하며 검색 성능을 최적화한 기록을 정리한 글이다.
이 글에선 테스트에 사용된 인프라와 테스트 환경, 시나리오 등에 대해 설명한다.
성능 테스트를 하기 위한 인프라 구축 과정은 다음 시리즈에 정리되어 있다.
https://velog.io/@jhkim31/series/테스트-인프라-구축
위의 시리즈에도 나와있지만 하나의 호스트에 KVM 으로 여러개의 VM을 띄우고 docker-swarm을 구성했다.
우선 호스트와 각 VM에 대한 성능이다.
CPU : i5-10400 (6Core, 12Threads)RAM : 32GBDISK : 1.5TB (500GB M.2, 1TB M.2)Master : 1개 (docker swarm master)Worker : 3개 (docker swarm worker)App Worker (Java Application 수행 노드) : 2개DB Worker (MySQL, Redis 실행 노드) : 1개CPU : 2RAM : 4GBDISK : 50GBNETWORK : Docker Network그리고 이 모든 모니터링은 Grafana 에서 이루어진다.
다음은 서버 인스턴스 현황이다.
MySQL : 1개 (8.0.23, master)Redis : 1개 (7.2.5, master)JVM : 1개 (jshop-0.0.7-beta)
nGrinder/controller : 1개 (3.5.9-p1)nGrinder/agent : 3개 (3.5.9-p1)아이폰 15, 아반떼 CN7아이폰 15, 빨간색, 128GB, 100만원, 아반떼 CN7, 화이트, 인스퍼레이션

1000ms10 RPS0.051시간동안 진행되어야할 테스트가 타임아웃으로 인해 조기 종료 되었다.
조회 성능은
3600ms0.4 RPS0.19정도가 나온것을 확인할 수 있다.
테스트 결과 생각보다 너무 낮은 성능이 나왔다.
다음 글부터 이 원인을 분석해보고 해결책을 찾아 적용해 원하는 목표치까지 달성하는 과정을 기록해보려 한다.