새소식

반응형
Spring/etc

[Tomcat] connection, thread, keep-alive 설정 살펴보기

  • -
반응형

외장 Tomcat을 이용하여서 운영하던 서비스를 Spring Boot에서 제공하는 내장 Tomcat으로 전환하기로 하였다.

그 과정에서 Tomcat server.xml 설정의 Connector 내용을 spring boot 설정으로 옮기게 되었다.

 

각 설정들의 값들 중에 connection, thread에 해당하는 값들을 살펴보도록 하자. 

Thread

server.tomcat.threads.max: 200
server.tomcat.threads.min-spare: 10

 

해당 값들은 application.yml에 "server.tomcat.." 설정을 하지 않았을 때의 default값들이다. 

( https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.server.server.tomcat.max-connections )

 

maxThreads

Connector가 생성할 수 있는 최대 Thread 수로 기본 200이다.

Thread 수 설정은 CPU 사용량을 고려해야 한다.

만약 호스트 CPU 사용량이 적은 경우 Thread 수 증가를 고려해 볼 수 있다.

 

minSpareThreads

Connector를 생성 시 최초에 만드는 Thread 수로 기본 10이다.

Connector 항상 수만큼의 여유 Thread 유지한다.

 

Connection

server.tomcat.max-connections: 8192
server.tomcat.accept-count: 100

 

maxConnections

서버가 허용하고 처리할 수 있는 최대 연결 개수를 의미한다.

 

accpetCount

들어오는 연결 요청이 maxConnections에 도달했을 때 들어오는 요청의 대기열(queue) 길이를 의미한다.

대기열이 가득 차면, 운영체제가 요청을 거부하거나 연결이 타임아웃 있다.

 

keep-alive

server.tomcat.keep-alive-timeout : 30s
server.tomcat.max-keep-alive-requests : 100

 

keep-alive-timeout

세션 연결 비용 (3-Way HandSharke) 줄이기 위해연결이 닫지 않고 다른 HTTP 요청을 기다리는 시간 

(미설정  Connection Timeout 세팅 , -1 사용하지 않음)

 

max-keep-alive-requests

Keep Alive 유지할  있는 최대 HTTP 요청 

0이나 1 Keep Alive 비활성화

-1 요청 수가 무제한 (Default : 100)

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.