php5-fpm : 서버가 오후 pm에 도달했습니다. Nginx에 +의 PHP5-FPM을 . 시간당 여러 번

나는이 Nginx에 +의 PHP5-FPM을 . 시간당 여러 번 웹 사이트가 멈추고 로그 파일에 다음이 표시됩니다.

경고 : [pool www] 서버가 pm.max_children 설정 (5)에 도달했습니다. 서버를 높이십시오.

/etc/php5/fpm/pool.d/www.conf 파일에는 다음 구성이 포함되어 있습니다.

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

서버 :
AMD Opteron ™ 3280, Octo-Core, 8x 2.4GHz, 16GB DIMM (DDR3).

이 서버의 www.conf 파일에 어떤 숫자를 넣어야할지 모르겠습니다. 누군가 도와 드릴까요? 감사



답변

PHP-FPM이에 도달하는 데는 여러 가지 이유가 있습니다 max_children. 가장 일반적인 것은 다음과 같습니다.

  • 고객의 많은 병렬 요청
  • PHP 스크립트의 느린 실행
  • 매우 낮은 설정 max_children

PHP + Nginx 이외의 다른 것이 없다고 가정하면 컴퓨터의 사양을 살펴보면 5보다 크게 설정할 수 있다고 생각합니다. 코어가 8 개 있다고 말하면 일반적으로 Nginx는 PHP보다 CPU가 훨씬 적게 필요하므로 5 명의 자녀가 있습니다. 당신은 아마 그들 모두를 사용할 수 없을 것입니다. 나는 보통 PHP 스크립트의 메모리 소비에 따라 코어 수 x 2 또는 코어 수 x 4 와 같은 것으로 설정합니다 .


답변

pm.max_requests 값 (기본적으로 주석 처리됨)을 설정하면 이러한 오류를 수정하는 데 도움이됩니다. 이 설정은 특정 횟수의 요청을 실행 한 후 하위 요청을 강제로 다시 생성하며 코드 또는 타사 라이브러리의 어딘가에 메모리 누수가있는 경우 유용 할 수 있습니다.

에서 /etc/php-fpm.d/www.conf :

pm.max_requests = 500

답변

링크 는 유용 할 수 있습니다. 시스템의 메모리 양을 기반으로 하위 프로세스 수를 계산하는 방법에 대해 설명합니다.