목록 보기
싱글벙글 회원 서비스 성능 튜닝기
백엔드

싱글벙글 회원 서비스 성능 튜닝기

쏘카
쏘카
2023년 7월 21일

두줄요약

회원 서비스의 트랜잭션 범위, DTO 변환, Tomcat 스레드 설정을 분석해 병목을 제거했습니다.\nRepository 단위 트랜잭션과 웜업으로 응답 시간을 약 8배 개선했습니다.

문제 상황

  • 성수기 프로모션에서 평소 대비 약 150% 트래픽 증가와 1000% 이상 응답 시간 증가
  • 인증 서비스 개편 이후에도 회원 서비스 병목으로 대규모 요청 처리 지연

원인 분석

  • 읽기 조회 메서드의 넓은 트랜잭션 범위로 외부 API 호출 동안 DB 커넥션 점유
  • ObjectMapper 직렬화·역직렬화 기반 DTO 변환에 따른 리플렉션·힙 할당·GC 비용
  • 1코어 Pod 환경의 기본 Tomcat 최대 200개 스레드로 인한 컨텍스트 스위칭 증가

해결 방법

  • 읽기 전용 트랜잭션 적용 후 트랜잭션 범위를 Repository로 축소
  • DTO 직접 생성 방식으로 변환 로직 단순화
  • Tomcat 최대 스레드 30개 설정 및 주요 API 사전 호출 웜업 추가

성능/운영 포인트

  • 스레드 수별 부하 테스트에서 30~50개 구간의 높은 처리량과 안정성 확인
  • 개선 후 응답 시간 약 8배 향상 및 응답 편차 2~10ms 수준 확보
  • DB 커넥션 증설보다 점유 시간 단축을 우선하는 개선 방향

다음 읽기

#Kotlin 주제를 이어서 읽기

싱글벙글 회원 서비스 성능 튜닝기

회원 서비스의 병목 원인을 트랜잭션, DTO 변환, 스레드 설정에서 찾았습니다. 읽기 트랜잭션 축소, 수동 매핑, 톰캣 스레드 조정과 웜업으로 응답 편차를 크게 개선했습니다.

쏘카
쏘카
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...