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

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

  • 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ó ▼

El gran nombre de processos PHP-CGI feia que la memòria s'esgotés ràpidament. El problema rau en el fet que VestaCP utilitza una configuració no optimitzada a la plantilla phpfcgid de CentOS .

  • 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:

La gestió de processos fills de PHP ( PHP_FCGI_CHILDREN ) sempre s'ha de desactivar amb mod_fcgid, que només encaminarà una sol·licitud alhora als processos d'aplicació que ha generat; per tant, qualsevol procés fill creat per PHP no s'utilitzarà de manera efectiva. (A més, és possible que els processos fills de PHP no es finalitzin correctament.) Per defecte, i amb la variable d'entorn definida com a PHP_FCGI_CHILDREN=0 , la gestió de processos fills de 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 únic procés PHP-CGI per a un únic usuari de Vesta CP consumeix entre 30 i 40 MB de memòria, cosa que és més que suficient per a un amfitrió Linux .

Per tant, optimitzar la configuració del contingut i les plantilles de Vesta és crucial per als professionals del màrqueting en línia que volen excel·lir en SEO .

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

发表 评论

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

Tornar a dalt