PHP-FPM 메모리 사용량 줄이기
인터넷에서 약간의 조사를 한 후, 우리는 풀 구성 파일에서 PHP-FPM의 메모리 소비를 줄이기 위해 PHP-FPM 프로세스 관리자와 그 특정 측면을 재구성해야 한다는 것을 발견했습니다.
기본 풀은 www이고 구성 파일은 /etc/php-fpm.d/www.conf(CentOS/RHEL/Fedora에서) 또는 /etc/php/7.4/fpm/pool.d/www.conf( "Ubuntu/Debian/Mint에서).
$ sudo vim /etc/php-fpm.d/www.conf [On CentOS/RHEL/Fedora]$ sudo vim /etc/php/7.4/fpm/pool.d/www.conf [On Ubuntu/Debian/Mint]
다음 지시문을 찾아 해당 값을 사용 사례에 맞게 설정하십시오. 주석 처리된 지시문의 경우 주석 처리를 제거해야 합니다.
pm = ondemandpm.max_children = 80pm.process_idle_timeout = 10spm.max_requests = 200
위의 지시문과 그 값에 대해 간단히 설명하겠습니다. pm 지시문은 프로세스 관리자가 자식 프로세스의 수를 제어하는 방법을 결정합니다. 기본 방법은 동적이며, 이는 자식(자식 프로세스)의 수가 동시에 활성화될 수 있는 자식의 최대 수를 정의하는 pm.max_children을 비롯한 일부 다른 지시문에 따라 동적으로 설정됨을 의미합니다.
가장 이상적인 프로세스 관리자는 시작 시 자식 프로세스가 생성되지 않고 요청 시 생성되는 온디맨드 방식입니다. 자식 프로세스는 유휴 프로세스가 종료되는 시간(초)을 정의하는 pm.max_children 및 pm.process_idle_timeout을 기반으로 새 요청이 연결될 때만 분기됩니다.
마지막으로 각 하위 프로세스가 다시 생성되기 전에 실행해야 하는 요청 수를 정의하는 pm.max_requests 매개변수를 설정해야 합니다. 이 매개변수는 타사 라이브러리의 메모리 누수에 대한 해결 방법으로도 사용할 수 있습니다.
참조: PHP-FPM을 실행하는 더 나은 방법.
위의 구성을 수행한 후 RAM 사용량이 이제 서버에서 정상임을 알았습니다. 이 주제 또는 질문과 관련하여 공유할 생각이 있습니까? 아래 피드백 양식을 통해 문의하세요.