개요
사내에서 만든 서비스에 메서드 전후로 AOP를 걸고 쓰레드별로 추적하는 기능을 덧붙여서 사용해볼 기회가 있었다. 성능이 어떻게 달라질 것인지 궁금했다. 이 글은 AOP 적용 이전과 이후 성능 차이를 기록하고 이를 분석해본 글이다. 그리고 이 결과에 대한 피드백으로 들어온 어떤 질문에 대해 고민해 본 내용을 소개한다.
사용한 툴
- 장비: macbook pro 13` 2020 (m1), 16GB, Ventura 13.5
- 성능 측정: JMeter, Spring Actuator(Prometheus, Grafana)
- 개발: Mvc: Springboot 2.6.7, mysql 8.0
테스트의 특성상 많은 더미 데이터를 사용하지는 않았다.
목차
- Log Trace AOP 적용 이전1.1 단건 조회1.2 검색 조회1.3 결과 분석
- Log Trace AOP 적용 이후2.1 적용 예시2.1 단건 조회2.2 검색 조회2.3 결과 분석
- 종합 결론
- 성능에 대한 결론
- AOP 적용에 대한 결론
- 질문
- 왜 그럴까?
1. Log Trace AOP 적용 이전
단건 조회
- request: /api/v2/process-data/templates/Generic-Template-XXXX
- db 현황: 더미 데이터 10건
유저 1명을 위한 테스트 (테스트 1)
첫 번째로, 유저가 1명일 때의 성능을 살펴보았다.