PHP를 설치할 때 주의 깊게 보면 php-fpm 모듈도 설치되어 있음을 알 수 있습니다. fpm 모듈은 요청 프로세스를 처리합니다. fpm의 관련 작업은 서버가 응답할 수 있는 요청 수에 직접적인 영향을 미칩니다. 적절한 설정은 처리 효율성을 효과적으로 향상시킵니다. 그렇지 않으면 502 게이트웨이 시간 초과 또는 504 오류가 발생합니다.
/etc/php/7.2/fpm/pool.d에서 www.conf 파일을 열고 다음 매개변수를 찾으세요.
pm=dynamicpm.max_children=5pm.start_servers=2pm.min_spare_servers=1pm.max_spare_servers=3;pm.max_requests=500
작성자가 PHP를 설치한 후의 기본 매개변수는 다음과 같습니다.
첫 번째 동적은 프로세스의 처리 모드가 동적임을 나타내며 이에 해당하는 정적 모드도 있습니다.
pm이 staic으로 설정된 경우 pm.max_childern 매개변수만 적용됩니다.
pm이 동적으로 설정되면 다음 4개의 매개변수가 적용됩니다. php-fpm이 실행되기 시작하면 시스템은 pm.start_servers php-fpm 프로세스를 시작한 다음 시스템 필요에 따라 pm.min_spare_servers와 pm.max_spare_servers 사이의 php-fpm 프로세스 수를 동적으로 조정합니다.
두 번째 매개변수 pm.max_children은 포크(시작)할 수 있는 최대 프로세스 수를 나타냅니다. 당연히 양이 많을수록 동시에 더 많은 요청을 할 수 있습니다. 당연히 느린 연결이 발생하지 않습니다. 요청 대기 시간은 길지만 CPU나 메모리는 여전히 사용 가능합니다. 이 값은 정적 모드에서 열린 php-fpm 프로세스 수를 나타내며 동적 모드에서 최대 php-fpm 프로세스 수를 제한합니다.
세 번째 매개변수 pm.start_servers는 동적 모드인 경우 여러 프로세스가 초기 상태에서 시작된 다음 필요에 따라 동적으로 조정됨을 나타내며 두 매개변수 pm.min_spare_servers 및 pm.max_spare_servers에 의해 결정됩니다.
네 번째 매개변수 pm.min_spare_servers는 동적 모드에서 유휴 상태에 있는 php-fpm 프로세스의 최소 수와 유휴 프로세스를 정리한 후 유지되는 수를 나타냅니다.
다섯 번째 매개변수 pm.max_spare_servers는 동적 모드에서 유휴 상태에 있는 php-fpm 프로세스의 최대 수를 나타냅니다. 즉, 유휴 프로세스가 이 값에 도달하면 정리됩니다.
여섯 번째 매개변수 pm.max_requests는 프로세스를 삭제하고 다시 시작하기 전의 요청 수를 나타내며, 이를 통해 메모리 누수를 방지할 수 있습니다.
당연히 여기서는 max_children이 5인데, 트래픽이 증가하면 확실히 충분하지 않을 것입니다. 가장 직접적인 영향은 pm.max_children 값입니다. : 메모리와 CPU 시스템 리소스가 허용되면 클수록 좋습니다. 예를 들어 fpm 프로세스는 약 15~25M입니다. 그러면 서버에 4G 메모리가 있는 경우에만 이상적인 조건일 수 있습니다. 완전 사용 시 150~300, 이후 서버 상태를 관찰하여 조정해 주세요.
일반적으로 대용량 메모리 서버(예: 32G 및 64G 이상)는 동시성 효과가 좋은 정적 모드를 고려할 수 있습니다. 소형 메모리 서버는 요청 시 자동으로 제어될 수 있는 동적 모드를 고려할 수 있습니다.
자신의 상황에 맞게 스트레스 테스트를 할 수 있고, 자신의 서버 상황에 맞춰 조정할 수도 있습니다.