Optimalisering av VestaCP phpfcgid mal konfigurasjonsprosess multi-minne utmattelse 500 feil

Etter at malen «phpfcgid» ble valgt for VestaCP -webtjenesten, ble minnet raskt brukt opp av et stort antall PHP-CGI-prosesser.

  • Jeg var i utgangspunktet tom for minne i noen timer etter at jeg startet serveren på nytt.
  • Den tidligere inaktive PHP-CGI-prosessen blir ikke drept, og en prosess kjører nesten 1 underprosesser, som bruker minst 20M minne.

Brukes i SSH htop kommando (installasjon kreves), kan du se denne statusen ▼

Etter at malen «phpfcgid» ble valgt for VestaCP-webtjenesten, ble minnet raskt brukt opp av et stort antall PHP-CGI-prosesser.

Hvis du får en feilmelding "-bash: htop: kommando ikke funnet" når du bruker htop-kommandoen, se denne veiledningen for løsningen ▼

Det store antallet PHP-CGI-prosesser førte til at minnet raskt ble brukt opp. Problemet ligger i at VestaCP bruker en uoptimalisert konfigurasjon i CentOS phpfcgid-malen.

  • VestaCP i phpfcgid-malen, sett 1 PHP-CGI-prosess til å kjøre opptil 20 underordnede prosesser.

se /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Linje 13 i filen:

export PHP_FCGI_CHILDREN=20

Imidlertid bryter et slikt oppsett Apaches advarsel i PHP-underprosessadministrasjonsdokumentasjonen:

PHP-barneprosessadministrasjon ( PHP_FCGI_CHILDREN ) bør alltid deaktiveres med mod_fcgid, som bare ruter én forespørsel om gangen til applikasjonsprosesser den har startet. Dermed vil ikke barneprosesser opprettet av PHP bli brukt effektivt. (I tillegg kan det hende at PHP-barneprosessene ikke avsluttes riktig.) Som standard, og med miljøvariabelen PHP_FCGI_CHILDREN=0 , er PHP-barneprosessadministrasjon deaktivert.

Fordi i Apaches mod_fcgid-modul kan PHP-CGI-prosessen bare svare på én forespørsel og kjøre om gangen, er PHP-CGI-underordnet prosess veldig ineffektiv.

Derfor bør innstillingene for PHP-delprosessadministrasjon deaktiveres direkte ▼

PHP_FCGI_CHILDREN=0

Samtidig, hvis du allerede har en generert virtuell vert, må du endre konfigurasjonsfilene til alle nettsteder ▼

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

Etter å ha åpnet fcgi-starter-konfigurasjonsfilen, sett inn følgende ▼

export PHP_FCGI_CHILDREN=20

Endre til ▼

export PHP_FCGI_CHILDREN=0
  • Etter modifisering vil PHP-underprosessadministrasjonen bli slått av i mod_fcgid-modus.
  • PHP-CGI-prosessen vil ikke lenger skape underordnede prosesser, noe som kan spare mye minne.

VestaCP angir heller ikke en termineringsmekanisme for inaktive prosesser:

  • Alle nylig utførte PHP-CGI-prosesser vil fortsette å bruke minne til systemet startes på nytt.

For å fikse dette, legg bare til mod_fcgid-konfigurasjonsfilen /etc/httpd/conf.d/fcgid.conf Legg til følgende innstillinger i ▼

FcgidIdleTimeout 120
  • Sett Apache til automatisk å drepe PHP-CGI-prosesser som er inaktive i 2 minutter (120 sekunder).

Etter at oppsettet er fullført, start Apache-tjenesten på nytt ▼

service httpd restart

Etter at tjenesten er startet på nytt, vil de hundrevis av PHP-CGI-prosesser som tidligere ble vist i HTOP ikke lenger vises.

Vanligvis bruker en enkelt PHP-CGI-prosess for en enkelt Vesta CP-bruker 30 til 40 MB minne, noe som er mer enn nok for en Linux- vert.

Derfor er det avgjørende for nettmarkedsførere som ønsker å utmerke seg innen SEO å optimalisere konfigurasjonen av Vesta-innhold og -maler .

Du kan ta en titt på følgende veiledninger på VestaCP-panelet ▼

发表 评论

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

Rull til toppen