키 포인트
적절한 메모리 서버의 경우, PHP-FPM의 설정은 높은 처리량과 낮은 대기 시간을 제공합니다. 이 설정을 통해 PHP-FPM 프로세스는 항상 최대 용량을 유지하여 새로운 프로세스를 생성 할 필요없이 트래픽 피크에 대한 빠른 응답을 가능하게합니다.
메모리 또는 캐시 응력 문제를 피하려면pm static
가 더 적합 할 수 있습니다. 이러한 설정은 현재 부하에 따라 하위 프로세스 수를 조정하여 메모리를 저장할 수 있지만 트래픽 변동이 발생할 때 오버 헤드 문제를 일으킬 수도 있습니다. pm static
pm.max_children
기사의 원고는 원래 편집없이 Haydenjames.io에 게시되었으며 저자의 허가를 받아 여기에서 재현되었습니다. pm dynamic
: 아동 프로세스의 수는 다음 지침에 따라 동적으로 설정됩니다. pm ondemand
: 프로세스는 필요에 따라 요청시 생성되며, 이는 동적과 다르며 서비스 시작에서 시작됩니다.
성능으로 변경하여 성능 및 시스템 응답 성을 향상시킬 수 있습니다. 이번에는 설명을 비교하고 유사점을 찾아 봅시다 :
Governor = ondemand
Governor = conservative
: 항상 최대 주파수로 CPU를 실행하십시오. Governor = performance
사용 서버의 최대 성능을 달성하십시오
PHP-FPM
설정은 서버의 메모리의 양에 크게 좌우됩니다. 기본적으로 서버 메모리가 불충분 한 문제가있는 경우 또는가 더 나은 선택 일 수 있습니다. 반면에, 메모리를 충분히 사용 가능한 경우 서버의 최대 용량으로 pm static
를 설정하여 대부분의 PHP 프로세스 관리자 (PM) 오버 헤드를 피할 수 있습니다. 다시 말해, 계산을 할 때
force_turbo
는 약 10GB의 32GB의 설치된 메모리를 사용합니다. 강조 표시된 자기 해석 열에 주목하십시오. 이 스크린 샷 중에 Google 웹 로그 분석에는 약 200 개의 "활성 사용자"가있었습니다 (지난 60 초). 이 수준에서는 PHP-FPM 아동 프로세스의 약 70%가 여전히 유휴 상태입니다. 이는 PHP-FPM이 현재 트래픽에 관계없이 항상 서버 리소스의 최대 용량으로 설정되어 있음을 의미합니다. 유휴 프로세스는 온라인으로 유지되며 교통 피크를 기다리고 PM이 아동 프로세스를 스폰 할 때까지 기다렸다가 만료 후 닫지 않고 즉시 응답합니다. PHP 메모리 누출이없는 프로덕션 서버이기 때문에 pm = static
를 사용할 수 있습니다. 그러나 스크립트를 정기적으로 다시 시작하는 것이 좋습니다. PM 오버 헤드를 피하는 것이기 때문에 요청 수를 더 높은 수로 설정하십시오. 예를 들어, pm.max_children = 100
숫자와 초당 요청에 따라 최소한 pm.process_idle_timeout
이 스크린 샷은 "u"(사용자) 옵션과 php-fpm 사용자의 이름으로 Linux pm.max_requests
를 사용하여 필터링됩니다. 표시되는 프로세스의 수는 약 50 개 (계산 없음)이지만 기본적으로 pm.max_requests = 0
는 터미널 창에 맞는 최상위 통계를 표시합니다.이 경우 %CPU로 정렬됩니다. 100 개의 PHP-FPM 프로세스를 모두 보려면 다음 명령을 사용할 수 있습니다. pm.max_requests = 1000
pm.max_children
를 사용할 때
top
를 사용하면 다음과 비슷한 오류가 발생했을 수 있습니다.
top
<code>top -bn1 | grep php-fpm</code>가 유휴 프로세스를 0으로 종료하면 트래픽이 변동하는만큼 많은 오버 헤드 문제가 발생하기 때문에 이것은 더 나쁩니다. 유휴 시간 초과가 매우 높게 설정되어 있습니다 ...이 경우 High
pm ondemand
그러나 도 잘하지 않습니다. 웹 사이트의 3 분의 2 이상이 트래픽이 거의 없기 때문에 PM dynamic
만 잘 수행 할 수 있습니다. 이는 ondemand
를 사용하여 모든 아동 프로세스가 종료되어 많은 서버 메모리를 저장 함을 의미합니다! 고맙게도 CPANEL 개발자는이 문제를 해결했으며 이제는 기본값이 pm.static
입니다. 이전에는 기본적으로 dynamic
의 사용으로 인해 유휴 CPANEL PHP-FPM 풀/계정에서도 PHP-FPM을 공유 서버의 옵션으로 만들었습니다. 트래픽이 양호한 경우 많은 PHP-FPM 풀 (공유 호스트)이있는 서버에서 호스트하지 않을 것입니다. ondemand
ondemand
결론
PHP-FPM의 는 많은 양의 트래픽을 제공하기 시작하면 PHP-FPM의 및 프로세스 관리자는 고유 한 오버 헤드로 인해 처리량을 제한 할 수 있습니다. 시스템을 이해하고 PHP-FPM 프로세스를 서버의 최대 용량과 일치하도록 설정하십시오. ondemand
또는 dynamic
를 기준으로 최대 사용 설정으로 시작하여 메모리와 CPU가 압도없이 처리 할 수있는 지점으로 증가하십시오.
ondemand
dynamic
php-fpm 조정에 대한 FAQ (FAQ)
PHP-FPM이란 무엇이며 서버 성능에 중요한 이유는 무엇입니까? pm dynamic
PHP-FPM 또는 FASTCGI 프로세스 관리자는 모든 크기의 사이트, 특히 바쁜 사이트에 유용한 추가 기능이있는 또 다른 PHP FASTCGI 구현입니다. 서버가 서버가 작업자 풀을 활용하여 동시 방문자의 더 많은 요청을 처리 할 수 있기 때문에 서버 성능에 중요합니다. 이러한 프로세스는 PHP 파일을 구문 분석하고 동적 컨텐츠를 생성하여 클라이언트에 제공하는 데 책임이 있습니다. 이러한 프로세스를 효과적으로 관리함으로써 PHP-FPM은 서버 성능 및 확장 성을 크게 향상시킬 수 있습니다. ondemand
PHP-FPM은 내 웹 사이트 성능을 어떻게 향상 시킵니까?
구성이란 무엇이며 성능에 어떤 영향을 미칩니 까?
PHP-FPM에서 구성pm static
설정이 포함됩니다. 다른 중요한 설정으로는 , pm static
및
설정 추가 또는 다른 프로세스 관리자로 전환하는 등 PHP-FPM 구성 설정을 조정하여 해결할 수 있습니다. 또한 모니터링 도구를 사용하여 병목 현상 및 성능 문제를 식별 할 수 있습니다. pm
PHP-FPM은 다른 PHP 핸들러와 어떻게 비교됩니까? pm.max_children
PHP-FPM은 일반적으로 다른 PHP 핸들러보다 더 효율적이고 유연한 것으로 간주됩니다. 다양한 프로세스 관리자를 지원하며 서버의 리소스 및 트래픽 패턴에 따라 조정할 수 있습니다. 또한 PHP-FPM은 Opcode Caching을 지원하고 많은 동시 요청을 처리 할 수 있으므로 바쁜 사이트에 이상적입니다. 예, PHP-FPM은 FASTCGI 프로토콜을 지원하는 모든 웹 서버와 함께 사용할 수 있습니다. 여기에는 Apache, Nginx 및 LightTPD와 같은 인기있는 웹 서버가 포함됩니다.
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
top
위 내용은 PHP-FPM 튜닝 : ' PM STATIC ' 최대 성능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!