>  기사  >  백엔드 개발  >  PHP는 동적인가요, 정적인가요?

PHP는 동적인가요, 정적인가요?

(*-*)浩
(*-*)浩원래의
2019-09-29 10:29:314628검색

PHP는 동적인가요, 정적인가요?

php-fpm의 프로세스 수는 설정에 따라 동적 프로세스와 정적 프로세스로 나눌 수 있습니다.

정적: 증가하거나 감소하지 않고 지정된 수의 php-fpm 프로세스를 직접 엽니다. (권장 학습: PHP 비디오 튜토리얼)

동적: 처음에 특정 수의 php-fpm 프로세스를 엽니다. , 요청이 커지면 php-fpm 프로세스 수가 동적으로 상한까지 증가하고 유휴 상태이면 유휴 프로세스 수가 자동으로 하한으로 해제됩니다.

이 두 가지 실행 방법은 서버의 실제 요구에 따라 조정될 수 있습니다.

여기에 이와 관련된 몇 가지 매개변수가 있습니다.

pm\pm.max_children\pm.start_servers\pm.min_spare_servers和pm.max_spare_servers。

pm은 사용할 방법을 정적 또는 동적의 두 가지 값으로 나타냅니다. 이전 버전에서는 동적을 apache-like라고도 합니다. 구성 파일에 제공된 지침에 주의하세요.

다음 네 가지 매개변수는 각각 다음을 의미합니다.

pm.max_children 정적 모드에서 시작된

php-fpm 프로세스 수

pm.start_servers 동적 모드에서

php-fpm 프로세스 시작 수; pm.min_spare_servers 동적 모드의 최소 php-fpm 프로세스 수

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으로 늘어나는 이유이기도 합니다. 따라서 동적 방식은 중복된 프로세스를 종료하고 일부 메모리를 재활용 및 해제할 수 있으므로 메모리가 적은 서버에서 사용하는 것이 좋습니다.

구체적인 최대 개수는 총 물리적 메모리 크기를 20M로 나눈 값입니다. 예를 들어 512M VPS의 경우 pm.max_spare_servers 값을 20으로 설정하는 것이 좋습니다. pm.min_spare_servers는 서버의 부하에 따라 5~10 사이로 설정하는 것이 더 적합합니다.

메모리가 더 큰 서버에 비해 정적으로 설정하면 효율성이 향상됩니다. php-fpm 프로세스를 자주 전환하면 지연이 발생하므로 메모리가 충분히 크면 정적 효과가 더 좋습니다. 이 숫자는 전체 물리적 메모리 크기를 30M로 나누어 얻을 수 있습니다. 예를 들어, 2GB 메모리가 있는 서버는 50으로 설정될 수 있고, 4GB 메모리가 있는 서버는 100으로 설정될 수 있습니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.