[서버] [톰캣] 사용가능한 쓰레드를 초과하는 요청 발생시 일어나는 일
프로그래밍/서버2021. 2. 22. 18:51
SO에 논의된 글이 있습니다.
어느 순간에 사용가능한 Thread의 수보다 connection가 더 많으면 어떤 일이 발생하나요? Thread에 의해 실행되지 않는 connection은 어떻게 되나요?
Thread에 의해 실행되지 않는 connection은 worker thread가 사용가능해질 때까지 기다립니다.
Tomcat은 연결을 받아들인 후 "accept queue"를 통해 worker thread로 보냅니다. 이것을 조절하는 Tomcat config 파라미터는 다음과 같습니다.
acceptCount: 모든 요청을 처리하는 Thread가 사용중일 때, 들어오는 connection request를 저장한 queue의 최대 크기. 이 queue가 꽉 찼을 때 발생하는 모든 request는 거절됩니다. 기본 값은 100입니다.
(출처 https://tomcat.apache.org/tomcat-8.0-doc/config/http.html)
참고
stackoverflow.com/questions/45627647/how-tomcat-handle-multiple-concurrent-request-at-the-same-time
댓글 영역