다음은 작업자의 기본 구성 섹션입니다.
StartServers 2
MaxClients 150 / /Set 모든 하위 프로세스의 총 스레드 수입니다. 기존 하위 프로세스의 총 스레드 수가 로드를 충족할 수 없는 경우 제어 프로세스는 새 하위 프로세스를 생성합니다.
MinSpareThreads 25 //유휴 스레드의 최소 개수가 설정되었습니다.
MaxSpareThreads 75 //유휴 스레드의 최대 개수가 설정되었습니다. MinSpareThreads 및 MaxSpareThreads의 최대 기본값은 75입니다. 즉, 여기서의 정의는 이를 초과해서는 안 됩니다.
ThreadsPerChild 25
MaxRequestsPerChild 0 //작업자 MPM에서 성능과 가장 밀접한 명령어이다. ThreadsPerChild의 최대 기본값은 64입니다. 로드가 큰 경우 64로는 충분하지 않습니다. 이때 ThreadLimit 명령어는 명시적으로 사용해야 하며 최대 기본값은 20,000입니다. 위의 두 값은 소스 트리 server/mpm/worker/worker.c의 다음 두 줄에 있습니다:
#define DEFAULT_THREAD_LIMIT 64
#define MAX_THREAD_LIMIT 20000
이 두 줄은 ThreadsPerChild 및 ThreadLimit의 제한 수에 해당합니다. 구성하기 전에 64를 원하는 값으로 변경하는 것이 가장 좋습니다. 이 두 값을 너무 높게 설정하여 시스템의 처리 능력을 초과하지 않도록 주의하세요. 그렇게 하면 Apache가 시작되지 않아 시스템이 불안정해질 수 있습니다.
작업자 모드에서 동시에 처리할 수 있는 총 요청 수는 총 하위 프로세스 수에 ThreadsPerChild 값을 곱하여 결정됩니다. , 이는 MaxClients보다 크거나 같아야 합니다. 로드가 매우 크고 기존 하위 프로세스의 수를 충족할 수 없는 경우 제어 프로세스는 새로운 하위 프로세스를 생성합니다. 하위 프로세스의 기본 최대 총 개수는 16입니다. 증가하는 경우 ServerLimit도 명시적으로 선언해야 합니다(최대값은 20000). 이 두 값은 소스 트리 server/mpm/worker/worker.c의 다음 두 줄에 있습니다:
#define DEFAULT_SERVER_LIMIT 16
#define MAX_SERVER_LIMIT 20000
명시적으로 ServerLimit이 선언된 경우 ThreadsPerChild를 곱한 값은 MaxClients보다 크거나 같아야 하며 MaxClients는 ThreadsPerChild의 정수 배수여야 합니다. 그렇지 않으면 Apache가 자동으로 해당 값으로 조정됩니다(예상치 못한 결과일 수 있음). 값).
위 내용은 아파치 성능 최적화(5) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!