VestaCP phpfcgid 템플릿 구성 프로세스 최적화 다중 메모리 고갈 500 오류

VestaCP 웹 서비스가 "phpfcgid" 템플릿을 선택한 후 많은 수의 PHP-CGI 프로세스로 인해 메모리가 빠르게 소진됩니다.

  • 기본적으로 서버를 다시 시작한 후 몇 시간 동안 메모리가 부족했습니다.
  • 이전에 유휴 상태였던 PHP-CGI 프로세스는 종료되지 않고 하나의 프로세스는 거의 1개의 하위 프로세스를 실행하여 최소 20M의 메모리를 소비합니다.

SSH에서 사용 htop 명령(설치 필요), 이 상태를 볼 수 있습니다 ▼

VestaCP 웹 서비스에 "phpfcgid" 템플릿을 선택한 후, 수많은 PHP-CGI 프로세스가 빠르게 메모리를 고갈시켰습니다.

htop 명령을 사용할 때 "-bash: htop: command not found" 오류 메시지가 표시되면 이 자습서에서 해결 방법을 확인하세요 ▼

많은 수의 PHP-CGI 프로세스로 인해 메모리가 빨리 소모됩니다. 문제는 VestaCP에 있습니다.CentOS에phpfcgid 템플릿에서는 최적화되지 않은 구성이 사용됩니다.

  • phpfcgid 템플릿의 VestaCP에서 1개의 PHP-CGI 프로세스를 설정하여 최대 20개의 하위 프로세스를 실행합니다.

请参 阅 /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh 파일의 13행:

export PHP_FCGI_CHILDREN=20

그러나 이러한 설정은 PHP 하위 프로세스 관리 문서에서 Apache의 경고를 위반합니다.

PHP 자식 프로세스 관리(PHP_FCGI_CHILDREN)은 항상 mod_fcgid와 함께 비활성화되어야 하며, 한 번에 하나의 요청만 생성된 애플리케이션 프로세스로 라우팅하므로 PHP에서 생성된 모든 하위 프로세스는 효과적으로 사용되지 않습니다.(또한 PHP 하위 프로세스가 제대로 종료되지 않을 수 있습니다. .) 기본적으로 환경 변수 설정으로 PHP_FCGI_CHILDREN=0, PHP 자식 프로세스 관리가 비활성화됩니다.

Apache의 mod_fcgid 모듈에서 PHP-CGI 프로세스는 한 번에 하나의 요청에만 응답하고 실행할 수 있기 때문에 PHP-CGI 자식 프로세스는 매우 비효율적입니다.

따라서 PHP 하위 프로세스 관리에 대한 설정은 직접 비활성화해야 합니다 ▼

PHP_FCGI_CHILDREN=0

동시에 이미 생성된 가상호스트가 있다면 모든 웹사이트의 설정파일을 수정해야 합니다 ▼

/home/用户名/web/域名/cgi-bin/fcgi-starter

fcgi-starter 구성 파일을 연 후 다음 ▼을 삽입합니다.

export PHP_FCGI_CHILDREN=20

▼로 수정

export PHP_FCGI_CHILDREN=0
  • 수정 후에는 mod_fcgid 모드에서 PHP 하위 프로세스 관리가 꺼집니다.
  • PHP-CGI 프로세스는 더 이상 많은 메모리를 절약할 수 있는 자식 프로세스를 생성하지 않습니다.

또한 VestaCP는 유휴 프로세스에 대한 종료 메커니즘을 설정하지 않습니다.

  • 새로 실행된 모든 PHP-CGI 프로세스는 시스템이 재부팅될 때까지 메모리를 계속 사용합니다.

이 문제를 해결하려면 mod_fcgid 구성 파일을 추가하기만 하면 됩니다. /etc/httpd/conf.d/fcgid.conf ▼에서 다음 설정을 추가합니다.

FcgidIdleTimeout 120
  • 2분(120초) 동안 유휴 상태인 PHP-CGI 프로세스를 자동으로 종료하도록 Apache를 설정합니다.

설정 완료 후 Apache 서비스 재시작 ▼

service httpd restart

서비스가 다시 시작되면 이전에 HTOP에 표시되었던 수백 개의 PHP-CGI 프로세스가 더 이상 표시되지 않습니다.

일반적으로 단일 Vesta CP 사용자에 대한 단일 PHP-CGI 프로세스는 30~40M의 메모리를 사용하여 완전히 만족합니다.Linux호스트 요구 사항.

그러므로,인터넷 營사람들은 잘하고 싶어한다SEO, Vesta CP 및 템플릿의 구성을 최적화하는 것이 매우 중요합니다 ^_^

VestaCP 패널에서 다음 튜토리얼을 볼 수 있습니다 ▼

发表 评论

귀하의 이메일 주소는 공개되지 않습니다. 必填 项 已 用 * 标注

위쪽으로 스크롤