Optimització del procés de configuració de plantilla phpfcgid de VestaCP esgotament de memòria múltiple 500 errors

VestaCP Després que el servei WEB selecciona la plantilla "phpfcgid", un gran nombre de processos PHP-CGI fan que la memòria s'esgoti ràpidament:

  • Bàsicament em vaig quedar sense memòria durant unes hores després de reiniciar el servidor.
  • El procés PHP-CGI anteriorment inactiu no s'elimina i un procés executa prop de 1 subprocessos, consumint almenys 20 M de memòria.

S'utilitza en SSH htop comanda (instal·lació necessària), podeu veure aquest estat ▼

Després de seleccionar la plantilla "phpfcgid" per al servei web VestaCP, el gran nombre de processos PHP-CGI va esgotar ràpidament la memòria.

Si rebeu un missatge d'error "-bash: htop: command not found" quan feu servir l'ordre htop, consulteu aquest tutorial per a la solució ▼

Un gran nombre de processos PHP-CGI fan que la memòria s'esgoti ràpidament.El problema rau en VestaCPCentOSA la plantilla phpfcgid, s'utilitza una configuració no optimitzada.

  • VestaCP a la plantilla phpfcgid, configureu 1 procés PHP-CGI per executar fins a 20 processos fills.

veure /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Línia 13 del fitxer:

export PHP_FCGI_CHILDREN=20

Tanmateix, aquesta configuració viola l'advertència d'Apache a la documentació de gestió de subprocés de PHP:

Gestió de processos fill PHP (PHP_FCGI_CHILDREN) sempre s'ha de desactivar amb mod_fcgid, que només encaminarà una sol·licitud a la vegada als processos d'aplicació que ha generat; per tant, els processos fills creats per PHP no s'utilitzaran de manera eficaç. (A més, és possible que els processos fills de PHP no s'acabin correctament). .) Per defecte, i amb la configuració de la variable d'entorn PHP_FCGI_CHILDREN=0, la gestió de processos fill PHP està desactivada.

Com que al mòdul mod_fcgid d'Apache, el procés PHP-CGI només pot respondre a una sol·licitud i executar-se alhora, el procés fill PHP-CGI és molt ineficient.

Per tant, la configuració per a la gestió de subprocés PHP s'hauria de desactivar directament ▼

PHP_FCGI_CHILDREN=0

Al mateix temps, si ja teniu un host virtual generat, haureu de modificar els fitxers de configuració de tots els llocs web ▼

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

Després d'obrir el fitxer de configuració fcgi-starter, inseriu el següent ▼

export PHP_FCGI_CHILDREN=20

Modificat a ▼

export PHP_FCGI_CHILDREN=0
  • Després de la modificació, la gestió de subprocés PHP es desactivarà en mode mod_fcgid.
  • El procés PHP-CGI ja no generarà processos fills, cosa que pot estalviar molta memòria.

A més, VestaCP no estableix un mecanisme de terminació per als processos inactius:

  • Tots els processos PHP-CGI recentment executats continuaran utilitzant memòria fins que es reiniciï el sistema.

Per solucionar-ho, només cal que afegiu el fitxer de configuració mod_fcgid /etc/httpd/conf.d/fcgid.conf Afegiu la configuració següent a ▼

FcgidIdleTimeout 120
  • Configureu Apache per matar automàticament els processos PHP-CGI que estiguin inactius durant 2 minuts (120 segons).

Un cop finalitzada la configuració, reinicieu el servei Apache ▼

service httpd restart

Després de reiniciar el servei, els centenars de processos PHP-CGI que es mostraven anteriorment a HTOP ja no es mostraran.

Normalment, un sol procés PHP-CGI per a un sol usuari de Vesta CP consumeix entre 30 i 40 M de memòria, la qual cosa satisfà completamentLinuxrequisits de l'amfitrió.

per tant,Màrqueting a Internetla gent vol fer-ho béSEO, és molt important optimitzar la configuració de Vesta CP i plantilles ^_^

Podeu fer una ullada als tutorials següents al tauler VestaCP ▼

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Tornar a dalt