2017-01-20 1 views
0

apache.org 공식 웹 사이트 :자식 프로세스는 몇 개의 연결을 처리 할 수 ​​있습니까?

MaxConnectionsPerChild 지시문은 개별 하위 서버 프로세스가 종료되기 전에 처리 할 연결 수에 대한 제한을 설정합니다.

나는 몇 가지 해명을 감사하겠습니다

:

Q1 :이 설정은 prefork의의 컨텍스트 내이기 때문에, 위에서 언급 한 연결 수는 연결 요청 (SYN_SENT) 또는 승인/설립 연결을 참조합니까? 어떤 상황에서 만료되는 것이 좋을까요?

질문 2 : 포트 80에서 수신 대기 만 처리하는 부모와 달리, 미리 작성된 하위 처리자는 수신 대기 연결과 설정된 연결을 모두 처리합니다. ThreadsPerChild가 동시 ESTABLISHED 소켓의 수를 제한하는 동안 동시에 들어오는 연결 요청 (SYN_SENT)의 제한은 MaxRequestWorkers의 apache 지시문에 의해 한 번에 처리 할 수 ​​있습니다. 이 올바른지 ?

질문 3 : 자녀가 포트 80에서 수신하는 경우 부모가 그 때 무엇을하고 있습니까? 계속 듣고 있니?

고맙습니다.

+0

ThreadsPerChild가 prefork mpm에서 사용되지 않는다는 것을 알고 있습니다. – Amit

답변

0

사용 된 mpm에 달려 있습니다. prefork의의 MPM의 경우 는 자식 프로세스는 하나 개의 연결이 (그래서 serverlimit 아파치 2.4)의로 MaxClients의 (지금이라고 MaxRequestWorkers 동일합니다 처리합니다. 한 아이가 많은 연결을 처리 할 수있는

노동자 및 이벤트 MPM 인 스레드를 사용합니다.

Q1 :. 제
MaxConnectionsPerChild 지금 MaxRequestsPerChild 값이라고 apache.org 웹 사이트 당으로 , MaxRequestsPerChild 값은 아이가 죽기 전에 각 자식 서버 프로세스가 제공 요청의 총 수를 설정 이 MaxRequestsPerChild 값을 설정하는 주된 이유는 긴 수명을 방지하는 것입니다. 프로세스 유도 메모리 누수 th에 대한 기본 MaxRequestsPerChild e prefork MPM은 1000이고 작업자 MPM은 0입니다.

Q2 : 개념 자체가 정확합니다. MaxRequestWorkers 및 ThreadsPerChild는 prefork mpm 지시문이 아닙니다.

질문 3 : 부모는 필요에 따라 여분의 어린이를 사전에 청취하고 들어오는 연결 요청을 처리 할 수 ​​있도록 청취를 위임합니다.

Prefork1 자녀/1 연결 제한을 극복하는 좋은 방법은 KeepAlive와 하위 지시문을 사용하는 것입니다. 이렇게하면 클라이언트/브라우저가 많은 동시 GET 요청을 발행 할 수 있으므로 1 TCP 연결을 통해 모든 페이지 요소를 가져올 수 있습니다. 이렇게하면 값 비싼 TCP 핸드 셰이크를 크게 줄여 대기 시간을 줄일 수 있습니다. 요즘 대부분의 브라우저는 연결 유지 기능을 지원합니다.

KeepAliveTimeout으로 제한 시간을 적용하여 닫히지 않은 브라우저 탭이 연결 슬롯을 움직이지 않도록하십시오.

관련 문제