-
Notifications
You must be signed in to change notification settings - Fork 3
[BE] 톰캣 튜닝
먼저, 유사 서비스를 찾아보았습니다
반려동물 관련 업계 1위 : 펫프렌즈
펫프렌즈의 MAU는 약 25만명입니다.
여기서, 초당 실 사용자를 도출해보면,
반올림하여 초당 0.1명의 사용자로 추론할 수 있습니다
- s/w: nGrinder 3.5.8
- h/w: AWS EC2 t3.medium
- 초당 접속 사용자(vUser): 100명
- 대상 API: 반려동물 식품 조회 API
집사의고민 서비스가 인기가 많아져, 펫프렌즈의 약 1000배인 초당 100명의 사용자가 이용한다고 가정해보았습니다.
사용자의 인지시간(think time)은 1초로 가정하였고,
메인 페이지에서 호출하며, 서비스의 핵심 기능인 반려동물 식품 조회 API 대상으로 실험하였습니다.
먼저 쓰레드 풀을 변경해보았습니다(기본값은 200입니다)
쓰레드 풀을 300으로 증가시킨 후, 테스트를 진행하였습니다
TPS는 93.2가 나왔습니다.
다음으로, 쓰레드 풀을 10으로 설정한 후, 테스트를 진행하였습니다
TPS는 93.7이 나왔습니다.
다음으로는 대기 큐의 사이즈를 조절해보겠습니다. (기본값은 100입니다)
먼저, 대기 큐의 사이즈를 200으로 설정한 후, 테스트를 진행하였습니다
TPS는 94.5가 나왔습니다.
다음으로, 대기큐의 사이즈를 기본값에서 50으로 줄여보았습니다.
TPS는 94.1이 나왔습니다.
다음으로는 톰캣 인스턴스가 처리할 수 있는 커넥션의 개수를 조절해보았습니다. (기본값은 8192입니다)
먼저, 커넥션 수를 10,000으로 설정하였습니다
TPS는 94.0이 나왔습니다.
다음으로, 커낵션 수를 5,000으로 줄여보았습니다
TPS는 94.4가 나왔습니다
마지막으로, 톰캣 기본 설정값으로 실험해보았습니다.
TPS는 95.5가 나왔습니다.
기본 설정값이 TPS가 가장 높게 측정되었고,
개별값들을 변화시키며 유의미한 상관관계를 찾지 못했습니다.
설정값들을 튜닝하며, 유의미한 차이를 찾지 못했습니다.
게다가 TPS값은 기본 설정값이 가장 높게 측정되었음을 확인하였습니다.
이에 집사의고민팀은 톰캣 설정값을 튜닝하지 않고, 기본값을 유지하기로 결정하였습니다.