Tomcat-maxThreads 대 maxConnections
Tomcat server.xml에서 maxThreads 대 maxConnections는 무엇입니까?
maxConnections가 서버에 열려있는 연결의 양이라는 것을 이해합니다.
maxThreads는 요청 처리 스레드의 최대 수입니다.
그러나 두 구성 매개 변수가 함께 작동하는 방식은 분명히 maxConnections를 1000으로 maxThreads를 10으로 설정하지 않을 것입니다.
두 구성 매개 변수 간의 관계는 무엇입니까?
<Connector
port="8443"
protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="250"
SSLEnabled="true"
scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS"
connectiontimeout="20000"
/>
Tomcat은 두 가지 모드로 작동 할 수 있습니다.
- BIO – I / O 차단 (연결 당 하나의 스레드)
- NIO – 비 차단 I / O (스레드보다 많은 연결)
Tomcat 7 은 기본적으로 BIO 이지만 합의는 "니오가 모든면에서 더 낫기 때문에 Bio를 사용하지 마십시오"로 보입니다. 파일 의 protocol매개 변수 를 사용하여이를 설정 server.xml합니다.
- BIO는
HTTP/1.1또는org.apache.coyote.http11.Http11Protocol - NIO는
org.apache.coyote.http11.Http11NioProtocol
당신이 BIO를 사용한다면 나는 그것들이 어느 정도 동일해야한다고 믿습니다.
NIO를 사용하는 경우 실제로 "maxConnections = 1000"및 "maxThreads = 10"이 합리적 일 수도 있습니다. 기본값은 maxConnections = 10,000 및 maxThreads = 200입니다. NIO를 사용하면 각 스레드가 원하는 수의 연결을 제공 할 수 있으며, 앞뒤로 전환하지만 연결을 유지할 수 있으므로 HTTPS에서는 시간이 많이 걸리지 만 HTTP에서는 문제가되는 일반적인 핸드 셰이 킹을 모두 수행 할 필요가 없습니다. "keepAlive"매개 변수를 조정하여 연결을 더 오래 유지하면 모든 속도가 빨라집니다.
에서 톰캣 문서 , I를 차단 / O (BIO)의 기본 값은 maxConnections의 값 maxThreads않는 집행자 (스레드 풀)이있는 경우에 사용되는가, 집행자에서 'maxThreads'의 값이 대신 사용됩니다. Non-blocking IO의 경우 maxThreads.
참고 URL : https://stackoverflow.com/questions/24678661/tomcat-maxthreads-vs-maxconnections
'program story' 카테고리의 다른 글
| x 및 y 좌표의 numpy 배열에서 가장 가까운 지점의 색인 찾기 (0) | 2020.11.18 |
|---|---|
| pandas.read_csv를 가져 와서 빈 값을 nan 대신 빈 문자열로 읽습니다. (0) | 2020.11.18 |
| PHP에서 배열의 최대 키 크기는 얼마입니까? (0) | 2020.11.18 |
| node.js에 해당하는 sprintf가 있습니까? (0) | 2020.11.18 |
| example.com은 도메인 예에서 괜찮습니다. IP 주소 예는 무엇입니까? (0) | 2020.11.18 |