-
Notifications
You must be signed in to change notification settings - Fork 6
[BE] 성능 테스트 및 톰캣 스레드풀 설정
Doy edited this page Sep 21, 2023
·
3 revisions
- 시간(초) 당 처리량(Throughput, TPS, RPS)을 기준으로, 서비스의 미래 트래픽에 기반하여 목표 추정
- 사용자가 많은 유사 서비스의 지난 한 달 트래픽 : 16,700명
- DAU(1일 사용자 수): 550명
- 1명 당 1일 평균 접속 수: 30번
- 사용자 플로우 기반 추정
- 피크 시간대 집중률: 3배
- 서비스 핵심 기능 상, 피크 시간 대 트래픽이 평균에 비해 크게 높지 않을 것으로 판단
- 1일 평균 RPS : 550명 * 30번 / 86,400 = 0.19/sec
- 1일 최대 RPS : (1일 평균 RPS) * 3 = 0.57/sec
- 1일 총 트래픽 : 메인 페이지 기준 69MB * (1일 RPS)
그러나 위 기준대로 할 시, 한 요청에 대한 대기 시간(Latency)이 최대 5초로 너무 길어진다.
그렇다면 서버가 항상 요청을 처리해야 하므로 부하 증가, 대기 시간으로 인한 사용자 이탈이 예상된다.
따라서 이에 10배를 곱하는 것으로 보정해, 목표 RPS를 1.9/sec ~ 5.7/sec으로 추정하였다.
동일한 API(핀 상세조회)에 대하여 테스트 진행함.
- 다양한 톰캣 설정값에 따른 TPS 변화 비교하는 방식으로 결과 분석
- 그러나 nGrinder의 테스트 세부 설정 및 요소들을 단시간에 파악하는 데 어려움을 겪음
- ✅ nGrinder 테스트 데이터
- 학습 곡선이 낮은 jmeter로 추가 테스트 진행
- 목표 성능과 비교하는 방식으로 결과 분석
- 150명의 사용자 스레드가(Number of Threads) 1초에(Ramp-up period) 당 요청을 반복해서(Loop Count=infinite) 30초간 보내는 상황을 가정함
- RPS: 468.5/sec
- Latency: 304ms
- 서비스 미래 트래픽에 요구되는 최대 RPS 값인 5.7/sec보다 현저히 높다.
- 단건 조회 API임을 고려하면, Latency의 개선은 필요해보인다.
- nGrinder 테스트 시, 설정 값에 따른 Latency 변화는 크게 보이지 않았기 때문에 다른 요인 조사 및 개선 예정
추정한 목표 RPS를 충분히 만족하기 때문에 별도 톰캣 설정 개선이 필요하지 않다고 판단함.
Latency의 개선은 nginx, DB 단의 병목 현상 조사 및 개선 예정.
Copyright © 2023 woowacourse Project - MapBeFine