> 백엔드 개발 > PHP 문제 > php-fpm 프로세스가 너무 많으면 어떻게 해야 할까요?

php-fpm 프로세스가 너무 많으면 어떻게 해야 할까요?

藏色散人
풀어 주다: 2023-03-10 15:16:02
원래의
3856명이 탐색했습니다.

너무 많은 php-fpm 프로세스에 대한 해결책: 먼저 원래 구성 파일을 백업한 다음 vim을 사용하여 구성 매개변수를 수정하고 마지막으로 재부팅을 통해 서버를 다시 시작합니다.

php-fpm 프로세스가 너무 많으면 어떻게 해야 할까요?

이 글의 운영 환경: CentOS 7 시스템, PHP7.1 버전, DELL G3 컴퓨터

php-fpm 프로세스가 너무 많으면 어떻게 해야 하나요?

CentOS 7에서 너무 많은 php-fpm 프로세스로 인한 과도한 서버 메모리 리소스 소비 문제 해결

php-fpm이란 무엇입니까?

php-fpm은 FastCGI 프로세스 관리자로, 메모리를 제어하는 ​​데 사용됩니다. PHP 및 프로세스 등

운영 환경:

CentOS 7
로그인 후 복사

문제 확인:

먼저 총 PHP 프로세스 수를 확인하세요.

pstree|grep php-fpm
로그인 후 복사

Echo:

|-php-fpm---20*[php-fpm]
로그인 후 복사

에코 정보에 따르면 쿼리하는 동안 20개의 php-fpm 프로세스가 있습니다.

다음 명령을 통해 가장 많은 메모리를 소비하는 상위 50개 프로세스를 나열할 수도 있습니다:

ps auxw|head -1;ps auxw|sort -rn -k4|head -50
로그인 후 복사

해결 프로세스:

아래에서는 메모리 사용량을 줄이기 위해 구성 파일을 수정하여 php-fpm을 최적화합니다.

내 php-fpm 구성 파일은 …/server/php/etc/ 디렉터리에 있습니다. 이 디렉터리를 입력하세요.

먼저 원본 구성 파일을 백업하세요.

cp php-fpm.conf php-fpm.conf.bak
로그인 후 복사

참고: vim을 사용하여 구성 파일을 연 후 Esc 키를 누르고 "/"를 입력한 다음 "xxx"를 입력하여 "xxx" 문자열을 찾으세요.

구체적인 구성 매개변수는 다음과 같습니다.

pm.max_children = 100改为:pm.max_children = 25
pm.start_servers = 20改为pm.start_servers = 5
pm.min_spare_servers = 5改为pm.min_spare_servers = 2
pm.max_spare_servers = 35改为pm.max_spare_servers = 10
로그인 후 복사

서버 다시 시작:

reboot
로그인 후 복사

다시 시작한 후 메모리 사용량이 이전보다 낮아진 것을 확인할 수 있습니다.

참고:

php-fpm.conf의 매개변수 설명:

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

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

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

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

위 설정을 할 때 php-fpm의 실행 모드를 동적으로 설정했습니다.

pm = 동적

php-fpm에는 두 가지 실행 모드가 있습니다.

하나는 정적이고 다른 하나는 동적입니다. static으로 설정하면 pm.max_children 매개변수만 적용됩니다. 동적으로 설정하면 세 가지 매개변수 pm.start_servers, pm.min_spare_servers 및 pm.max_spare_servers가 적용됩니다. 이를 동적으로 설정한 후 php-fpm이 시작되면 pm.start_servers의 매개변수 설정에 따라 해당 수의 프로세스가 시작됩니다. 그 후 php-fpm 프로세스 수는 pm에 지정된 수 사이에서 유지됩니다. min_spare_servers 및 pm.max_spare_servers.

php-fpm의 정적 또는 동적 실행 모드를 선택하는 방법:

동적 php-fpm 실행 모드를 사용하면 php-fpm이 중복 프로세스를 해제하여 메모리 리소스를 절약할 수 있습니다.

정적 php-fpm 실행 방법은 php-fpm이 프로세스 이상을 릴리스하는 것을 허용하지 않으므로 php-fpm 프로세스를 자주 시작하거나 중지하는 것을 방지하여 경우에 따라 서버의 응답 시간을 줄입니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 php-fpm 프로세스가 너무 많으면 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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