> 백엔드 개발 > PHP 튜토리얼 > php-fpm 정적 동적

php-fpm 정적 동적

不言
풀어 주다: 2023-03-24 11:10:02
원래의
2691명이 탐색했습니다.

이 글은 주로 php-fpm의 정적 측면과 동적 측면을 소개합니다. 이제 이를 여러분과 공유하고 참고용으로 제공합니다.

php-fpm의 staticdynamic실행 방법 비교를 살펴보겠습니다.
얼마 전 php-fpm을 구성할 때 우연히 두 가지 실행 방법이 있다는 것을 알게 되었습니다. Apache와 마찬가지로 프로세스 수도 설정에 따라 동적 프로세스와 정적 프로세스로 나눌 수 있습니다.
php-fpm에는 두 가지 방법이 있습니다. 하나는 증가하거나 감소하지 않고 지정된 수의 php-fpm 프로세스를 직접 여는 것이고, 다른 하나는 요청이 있을 때 특정 수의 php-fpm 프로세스를 여는 것입니다. 볼륨이 커지면 php-fpm 프로세스 수가 동적으로 상한까지 증가하고, 유휴 상태일 때는 유휴 프로세스 수가 자동으로 하한으로 해제됩니다.
이 두 가지 실행 방법은 서버의 실제 요구에 따라 조정될 수 있습니다.
여기에 관련된 몇 가지 매개 변수에 대해 이야기해 보겠습니다. pm, pm.max_children, pm.start_servers, pm.min_spare_servers 및 pm.max_spare_servers입니다.
pm은 해당 방법을 사용한다는 의미이며 정적 또는 동적 중에서 선택할 수 있는 두 가지 값이 있습니다. 이전 버전에서는 동적을 아파치와 유사한 것으로 불렀습니다. 구성 파일에 제공된 지침에 주의하세요.
다음 4개 매개변수의 의미:

  1. pm.max_children: 정적 모드에서 열린 php-fpm 프로세스 수.

  2. pm.start_servers: 동적 모드에서 시작하는 php-fpm 프로세스 수.

  3. pm.min_spare_servers: 동적 모드의 최소 php-fpm 프로세스 수.

  4. pm.max_spare_servers: 동적 모드의 최대 php-fpm 프로세스 수입니다.

dm이 정적으로 설정된 경우 pm.max_children 매개변수만 적용됩니다. 시스템은 설정된 수의 php-fpm 프로세스를 엽니다.
dm이 동적으로 설정된 경우 pm.max_children 매개변수는 유효하지 않으며 다음 세 매개변수가 적용됩니다. php-fpm이 실행되기 시작하면 시스템은 pm.start_servers php-fpm 프로세스를 시작한 다음 시스템 필요에 따라 pm.min_spare_servers와 pm.max_spare_servers 사이의 php-fpm 프로세스 수를 동적으로 조정합니다.
그럼 우리 서버에는 어떤 실행 방식이 더 좋은가요? 실제로 Apache와 마찬가지로 우리가 실행하는 PHP 프로그램도 실행 후 메모리 누수가 발생합니다. 이는 php-fpm 프로세스가 처음에는 약 3M의 메모리만 차지하며 일정 기간 실행된 후에는 20-30M로 증가하는 이유이기도 합니다. 따라서 동적 방식은 중복된 프로세스를 종료하고 일부 메모리를 재활용 및 해제할 수 있으므로 메모리가 적은 서버나 VPS에서 사용하는 것이 좋습니다. 구체적인 최대량은 메모리/20M 기준으로 구해집니다. 예를 들어 512M VPS의 경우 pm.max_spare_servers를 20으로 설정하는 것이 좋습니다. pm.min_spare_servers는 서버의 부하에 따라 5~10 사이로 설정하는 것이 더 적합합니다.
그리고 상대적으로 메모리가 큰 서버의 경우 정적으로 설정하면 효율성이 향상됩니다. php-fpm 프로세스를 자주 전환하면 지연이 발생하므로 메모리가 충분히 크면 정적 효과가 더 좋습니다. 메모리/30M 단위로 수량을 얻을 수도 있습니다. 예를 들어, 2GB 메모리가 있는 서버는 50으로 설정될 수 있고, 4GB 메모리가 있는 서버는 100으로 설정될 수 있습니다.
이 사이트는 512M VPS를 기반으로 구축되었으므로 설정한 매개변수는 다음과 같습니다:
pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20
그렇습니다. 메모리 절약을 극대화하고 실행 효율성을 향상시킵니다.
첨부된 각 매개변수에 대한 설명은 다음과 같습니다.
pm 문자열
프로세스 관리자가 하위 프로세스를 관리하는 방법을 설정합니다. 사용 가능한 값: 정적, 주문형, 동적. 설정해야 합니다.
정적 - 하위 프로세스 수가 고정되어 있습니다(pm.max_children).
ondemand - 수요가 있을 때 프로세스가 생성됩니다(동적과 달리 요청 시 서비스가 시작될 때 pm.start_servers가 시작됩니다.
dynamic - 하위 프로세스 수는 다음 구성에 따라 동적으로 설정됩니다. pm.max_children, pm .start_servers, pm.min_spare_servers, pm.max_spare_servers.
pm.max_children int
pm이 정적으로 설정된 경우 생성된 하위 프로세스 수를 나타냅니다. pm이 동적으로 설정된 경우 생성되는 하위 프로세스의 최대 수를 나타냅니다.
이 옵션은 동시에 제공될 수 있는 요청 수에 대한 제한을 설정합니다. Apache의 mpm_prefork 및 일반 PHP FastCGI
pm의 PHP_FCGI_CHILDREN 환경 변수 설정과 유사합니다. .start_serversin
시작 시에만 생성되는 하위 프로세스 수를 설정합니다. 기본값: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.min_spare_servers int
pm 시에만 설정해야 합니다.
pm.max_spare_servers int
최대 프로세스 수를 설정합니다. pm이 동적으로 설정된 경우에만 사용됩니다.
pm.max_requests int
각 하위 항목 이전에 제공되는 요청 수를 설정해야 합니다. 프로세스가 다시 탄생합니다. 이는 메모리 누수가 있을 수 있는 타사 모듈에 유용합니다. '0'으로 설정하면 요청이 항상 허용되며 이는 PHP_FCGI_MAX_REQUESTS 환경 변수와 동일합니다. 실행 방법 비교

php-fpm의 staticdynamic
에 대해 얼마 전 php-fpm을 구성할 때 우연히 Apache와 마찬가지로 두 가지 실행 방법이 있다는 것을 발견했습니다. 프로세스 수도 다음과 같이 구분할 수 있습니다. settings.php-fpm에는 두 가지 방법이 있는데, 하나는 지정된 번호를 직접 여는 것입니다. 다른 하나는 처음에 특정 수의 php-fpm 프로세스를 시작하는 것입니다. 요청량이 커지면 php-fpm 프로세스 수가 동적으로 상한선까지 증가합니다. php-fpm 프로세스 수가 유휴 상태이면 유휴 프로세스 수가 자동으로 하한선으로 해제됩니다. 실행 방법은 서버의 실제 요구에 따라 조정될 수 있습니다.
여기에 관련된 몇 가지 매개 변수에 대해 이야기해 보겠습니다. pm, pm.max_children, pm.start_servers, pm.min_spare_servers 및 pm.max_spare_servers입니다.
pm은 해당 방법을 사용한다는 의미이며 정적 또는 동적 중에서 선택할 수 있는 두 가지 값이 있습니다. 이전 버전에서는 동적을 아파치와 유사한 것으로 불렀습니다. 구성 파일에 제공된 지침에 주의하세요.
다음 4개 매개변수의 의미:

    pm.max_children: 정적 모드에서 열린 php-fpm 프로세스 수.
  1. pm.start_servers: 동적 모드에서 시작하는 php-fpm 프로세스 수.
  2. pm.min_spare_servers: 동적 모드의 최소 php-fpm 프로세스 수.
  3. pm.max_spare_servers: 동적 모드의 최대 php-fpm 프로세스 수입니다.

dm이 정적으로 설정된 경우 pm.max_children 매개변수만 적용됩니다. 시스템은 설정된 수의 php-fpm 프로세스를 엽니다.
dm이 동적으로 설정된 경우 pm.max_children 매개변수는 유효하지 않으며 다음 세 매개변수가 적용됩니다. php-fpm이 실행되기 시작하면 시스템은 pm.start_servers php-fpm 프로세스를 시작한 다음 시스템 필요에 따라 pm.min_spare_servers와 pm.max_spare_servers 사이의 php-fpm 프로세스 수를 동적으로 조정합니다.
그럼 우리 서버에는 어떤 실행 방식이 더 좋은가요? 실제로 Apache와 마찬가지로 우리가 실행하는 PHP 프로그램도 실행 후 메모리 누수가 발생합니다. 이는 php-fpm 프로세스가 처음에는 약 3M의 메모리만 차지하며 일정 기간 실행된 후에는 20-30M로 증가하는 이유이기도 합니다. 따라서 동적 방식은 중복된 프로세스를 종료하고 일부 메모리를 재활용 및 해제할 수 있으므로 메모리가 적은 서버나 VPS에서 사용하는 것이 좋습니다. 구체적인 최대량은 메모리/20M 기준으로 구해집니다. 예를 들어 512M VPS의 경우 pm.max_spare_servers를 20으로 설정하는 것이 좋습니다. pm.min_spare_servers는 서버의 부하에 따라 5~10 사이로 설정하는 것이 더 적합합니다.
그리고 상대적으로 메모리가 큰 서버의 경우 정적으로 설정하면 효율성이 향상됩니다. php-fpm 프로세스를 자주 전환하면 지연이 발생하므로 메모리가 충분히 크면 정적 효과가 더 좋습니다. 메모리/30M 단위로 수량을 얻을 수도 있습니다. 예를 들어, 2GB 메모리가 있는 서버는 50으로 설정될 수 있고, 4GB 메모리가 있는 서버는 100으로 설정될 수 있습니다.
이 사이트는 512M VPS를 기반으로 구축되었으므로 설정한 매개변수는 다음과 같습니다:
pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20
그렇습니다. 메모리 절약을 극대화하고 실행 효율성을 향상시킵니다.
첨부된 각 매개변수에 대한 설명은 다음과 같습니다.
pm 문자열
프로세스 관리자가 하위 프로세스를 관리하는 방법을 설정합니다. 사용 가능한 값: 정적, 주문형, 동적. 설정해야 합니다.
정적 - 하위 프로세스 수가 고정되어 있습니다(pm.max_children).
ondemand - 수요가 있을 때 프로세스가 생성됩니다(동적과 달리 요청 시 서비스가 시작될 때 pm.start_servers가 시작됩니다.
dynamic - 하위 프로세스 수는 다음 구성에 따라 동적으로 설정됩니다. pm.max_children, pm .start_servers, pm.min_spare_servers, pm.max_spare_servers.
pm.max_children int
pm이 정적으로 설정된 경우 생성된 하위 프로세스 수를 나타냅니다. pm이 동적으로 설정된 경우 생성되는 하위 프로세스의 최대 수를 나타냅니다.
이 옵션은 동시에 제공될 수 있는 요청 수에 대한 제한을 설정합니다. Apache의 mpm_prefork 및 일반 PHP FastCGI
pm의 PHP_FCGI_CHILDREN 환경 변수 설정과 유사합니다. .start_serversin
시작 시에만 생성되는 하위 프로세스 수를 설정합니다. 기본값: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.min_spare_servers int
pm 시에만 설정해야 합니다.
pm.max_spare_servers int
최대 프로세스 수를 설정합니다. pm이 동적으로 설정된 경우에만 사용됩니다.
pm.max_requests int
각 하위 항목 이전에 제공되는 요청 수를 설정해야 합니다. 프로세스가 다시 탄생합니다. 이는 메모리 누수가 있을 수 있는 타사 모듈에 유용합니다. '0'으로 설정하면 요청이 항상 허용되며 이는 PHP_FCGI_MAX_REQUESTS 환경 변수와 동일합니다.

관련 권장 사항:

php-fpm 풀, PHP 느린 실행 로그, open_basedir, php-fpm 프로세스 관리

php-fpm restart

위 내용은 php-fpm 정적 동적의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿