logo

3. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - Nginx 튜닝

language-logonGrinder
language-logoSpringBoot

• AWS Elastic Beanstalk의 Nginx와 Spring Boot 간의 성능 튜닝을 위해, 먼저 너무 많은 TIME_WAIT 소켓이 생성되는 문제를 해결하기 위해 Nginx의 keepalive 기능을 활용한다. keepalive는 한 번 맺은 세션을 요청이 끝나더라도 유지해주는 기능으로, 매 요청마다 새로운 세션을 만들지 않고, 지정된 숫자만큼의 세션을 연결한 뒤 그 연결을 통해 요청을 처리하게 해준다.
• Nginx의 설정에 keepalive 기능을 추가하려면, 서버에 설치된 Nginx의 confing 파일 설정을 변경해야 한다. 이를 통해 성능 테스트 결과, TPS가 6300까지 증가하였고, TIME_WAIT 소켓의 수도 줄어들었다.
• Nginx의 keepalive 설정을 통해 서버의 TIME_WAIT 소켓 수를 줄이고, TPS를 향상시킬 수 있다. 이를 위해선 Nginx의 설정 파일인 nginx.conf를 수정하고, AWS Beanstalk에서는 .ebextensions/nginx/nginx.conf 파일을 생성하여 수정한 설정을 적용한다.
• 수정된 설정을 통해 서버의 TIME_WAIT 소켓 수가 평균 3만개에서 4~5000개로 줄어들었으며, TPS는 7500까지 처리할 수 있게 되었다. 이는 서버의 성능 향상을 가져왔다.

thumbnail
북마크
공유하기
신고하기
10분 분량
조회수 221
profile-image향로
2년 전
Copyright © 2025. Codenary All Rights Reserved.