1. 개요
2. 성능 개선 정리
2.1 부하 테스트 기준 소개
- 부하 테스트를 하기 위해 1회 테스트에 100회 연속으로 조회(1회 조회 = 20개 메시지) 하는 테스트를 진행하였습니다. (1회 테스트 = 2000개의 메시지 조회)
- Ngrinder 테스트는 0.1 이하는 생략하여 MMT(평균 응답 속도) 기준으로 표기하였습니다.
2.2 부하 테스트 성능 개선 목록
-
- 커서 목록 조회 적용
-
- Look Aside 패턴 및 Linked LIst 적용 (112,843ms → 46,704ms) (이전 대비, 2.4배 향상)
-
- 중간 실험 진행 결과
-
- Lua 스크립트 적용 (46,704ms → 7,265ms) (이전 대비, 6.4배 향상)
-
- 인덱스 생성 (7,265ms → 4,638ms) ( 이전 대비, 1.5배 향상)
-
- 로컬 캐시 적용 (4,638ms → 1,656ms) (이전 대비, 2.8배 향상)
-
- Nginx 로드밸런싱 알고리즘 변경 (1,656ms → 1,111ms) (이전 대비, 1.5배 향상)
3. 정리
- 기존에는 부하 테스트를 할 경우 DB 서버가 정지 되는 현상이 있었습니다. 이를 해결하기 위해 성능 개선 작업을 진행하였고, 그 결과 기존 대비 101배(112,843ms → 1,111ms) 성능 향상을 이룬 것을 확인할 수 있었습니다.
- 성능 개선 과정에서 모니터링을 이용해 발생하는 병목 지점을 찾을 수 있었고 이 것을 해결하는 과정에서 Spring 프레임워크, Redis, 캐시 전략, CS지식등을 적용할 수 있었습니다.