동시 연결 및 Prefork MPM 모듈

동시 연결 및 Prefork MPM 모듈

서버가 지원하는 동시 연결 수를 확인하기 위해 서버를 테스트하고 있습니다. 저는 my mpm_prefork.conf다음과 같이 구성합니다.

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of requests a server process serves

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers       5
    MaxSpareServers      10
    MaxRequestWorkers     100000
    MaxConnectionsPerChild   0
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

그러나 내 서버가 약 8200개의 동시 연결을 수신하면 오류가 발생하고 Apache가 더 이상 응답하지 않습니다.

[notice] caught SIGTERM, shutting down

서버에 메모리가 충분하고 여유가 있습니다.

구성 괜찮나요? 변경해야 할 사항이 있나요?

감사해요

답변1

값 도 변경해야 합니다 ServerLimit. ~에서MaxRequestWorkers문서:

스레드되지 않은 서버(즉, 프리포크)의 경우 MaxRequestWorkers는 요청을 처리하기 위해 시작될 최대 하위 프로세스 수로 변환됩니다.기본값은 256입니다. 이를 늘리려면 ServerLimit도 늘려야 합니다..

그런데 거기에 메모가 있어요서버 제한 사항 문서:

서버에 컴파일되는 ServerLimit 20000이라는 하드 제한이 있습니다.(프리포크 MPM 200000의 경우) 이는 철자 오류로 인한 부정적인 영향을 방지하는 것입니다. 이 한도 이상으로 늘리려면 mpm 소스 파일에서 MAX_SERVER_LIMIT 값을 수정하고 서버를 다시 빌드해야 합니다.

관련 정보