먼저 PHP-FPM이 어떻게 실행되는지 살펴보겠습니다.
static :表示在 `php-fpm` 运行时直接 `fork` 出 `pm.max_chindren` 个子进程, dynamic:表示,运行时 `fork` 出 `start_servers` 个进程,随着负载的情况,动态的调整,最多不超过 `max_children` 个进程。
일반적으로 static을 사용하는 것이 좋습니다.
로드 상황을 동적으로 판단하고 성능을 향상시킬 필요가 없다는 것이 장점입니다.
단점은 시스템 메모리 리소스를 더 많이 차지한다는 것입니다.
PHP-FPM 하위 프로세스 수는 많을수록 좋나요?
물론 그렇지 않습니다. pm.max_chindren. 프로세스가 너무 많아 프로세스 관리 및 컨텍스트 전환 비용이 증가합니다. 더 중요한 것은 동시에 실행될 수 있는 php-fpm 프로세스 수가 CPU 수를 초과하지 않는다는 것입니다.
설정 방법은 코드에 따라 다릅니다.
코드가 CPU를 많이 사용하는 경우 pm.max_chindren은 CPU의 코어 수를 초과할 수 없습니다. 그렇지 않은 경우 pm.max_chindren 값을 CPU 코어 수보다 크게 설정하는 것이 매우 현명합니다.
공식:
은 N + 20%와 M/m 사이입니다.
매개변수 설명:
N은 CPU 코어 수입니다.
M은 PHP가 활용할 수 있는 메모리 양입니다.
m은 각 PHP 프로세스에서 사용하는 평균 메모리 양입니다.
동적 메서드에 적용됩니다.
정적 방법: M / (m * 1.2)
물론 max_children을 구성하는 안전한 방법도 있습니다. 정적 모드에 적용됩니다.
1. 먼저 max_childnren을 비교적 큰 값으로 설정합니다.
2. 일정 시간 동안 안정적으로 실행한 후 php-fpm 상태에서 최대 활성 프로세스를 관찰합니다.
3. 그런 다음 max_children을 그보다 크게 설정합니다.
pm.max_requests
: 처리 후 각 하위 프로세스가 다시 시작되는 요청 수를 나타냅니다. 이 매개변수는 이론적으로는 마음대로 설정할 수 있지만, 메모리 누수의 위험을 방지하기 위해서는 적당한 수치를 설정하는 것이 좋다.
추천 비디오 튜토리얼: PHP 비디오 튜토리얼
위 내용은 PHP는 일반적으로 몇 개의 프로세스를 엽니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!