VestaCP phpfcgid mallin konfigurointiprosessin optimointi usean muistin tyhjeneminen 500 virhettä

Kun VestaCP- verkkopalvelulle oli valittu "phpfcgid"-mallipohja, suuri määrä PHP-CGI-prosesseja kulutti muistin nopeasti loppuun.

  • Muisti oli periaatteessa loppumassa muutaman tunnin ajan palvelimen uudelleenkäynnistyksen jälkeen.
  • Aiemmin käyttämättömänä ollut PHP-CGI-prosessi ei tapeta, ja yhdessä prosessissa on lähes 1 aliprosessia, jotka kuluttavat vähintään 20 Mt muistia.

Käytetään SSH:ssa htop komento (vaatii asennusta), voit tarkastella tätä tilaa ▼

Kun VestaCP-verkkopalvelulle oli valittu "phpfcgid"-mallipohja, suuri määrä PHP-CGI-prosesseja kulutti muistin nopeasti loppuun.

Jos saat virheilmoituksen "-bash: htop: komentoa ei löydy", kun käytät htop-komentoa, katso tämä opetusohjelma ratkaisua varten ▼

Suuri määrä PHP-CGI-prosesseja aiheutti muistin nopean loppumisen. Ongelmana on se, että VestaCP käyttää CentOS:n phpfcgid-mallissa optimoimatonta konfiguraatiota .

  • Aseta VestaCP phpfcgid-mallissa 1 PHP-CGI-prosessi ajamaan jopa 20 aliprosessia.

请 参阅 /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Tiedoston rivi 13:

export PHP_FCGI_CHILDREN=20

Tällainen asennus rikkoo kuitenkin Apachen varoitusta PHP-aliprosessinhallinnan dokumentaatiossa:

PHP:n lapsiprosessien hallinta ( PHP_FCGI_CHILDREN ) tulisi aina poistaa käytöstä mod_fcgid-muuttujalla, joka reitittää vain yhden pyynnön kerrallaan luomiinsa sovellusprosesseihin. Näin ollen PHP:n luomia lapsiprosesseja ei käytetä tehokkaasti. (Lisäksi PHP:n lapsiprosesseja ei välttämättä voida lopettaa oikein.) Oletusarvoisesti ja ympäristömuuttujan asetuksella PHP_FCGI_CHILDREN=0 PHP:n lapsiprosessien hallinta on poistettu käytöstä.

Koska Apachen mod_fcgid-moduulissa PHP-CGI-prosessi voi vastata vain yhteen pyyntöön ja suorittaa kerrallaan, PHP-CGI-lapsiprosessi on erittäin tehoton.

Siksi PHP:n aliprosessien hallinnan asetukset tulee poistaa käytöstä suoraan ▼

PHP_FCGI_CHILDREN=0

Samanaikaisesti, jos sinulla on jo luotu virtuaalinen isäntä, sinun on muokattava kaikkien verkkosivustojen asetustiedostoja ▼

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

Kun olet avannut fcgi-starter-määritystiedoston, lisää seuraava ▼

export PHP_FCGI_CHILDREN=20

Muokattu muotoon ▼

export PHP_FCGI_CHILDREN=0
  • Muokkauksen jälkeen PHP-aliprosessien hallinta kytketään pois päältä mod_fcgid-tilassa.
  • PHP-CGI-prosessi ei enää synnytä lapsiprosesseja, mikä voi säästää paljon muistia.

VestaCP ei myöskään aseta lopetusmekanismia käyttämättömille prosesseille:

  • Kaikki äskettäin suoritetut PHP-CGI-prosessit käyttävät edelleen muistia, kunnes järjestelmä käynnistetään uudelleen.

Korjaa tämä lisäämällä mod_fcgid konfiguraatiotiedosto /etc/httpd/conf.d/fcgid.conf Lisää seuraavat asetukset kohtaan ▼

FcgidIdleTimeout 120
  • Aseta Apache tappamaan automaattisesti PHP-CGI-prosessit, jotka ovat käyttämättömänä 2 minuuttia (120 sekuntia).

Kun asennus on valmis, käynnistä Apache-palvelu uudelleen ▼

service httpd restart

Kun palvelu on käynnistetty uudelleen, satoja PHP-CGI-prosesseja, jotka aiemmin näytettiin HTOPissa, ei enää näytetä.

Tyypillisesti yksi Vesta CP -käyttäjän PHP-CGI-prosessi kuluttaa 30–40 Mt muistia, mikä on enemmän kuin tarpeeksi Linux- isännälle.

Siksi Vestan sisällön ja mallien kokoonpanon optimointi on ratkaisevan tärkeää verkkomarkkinoijille , jotka haluavat menestyä hakukoneoptimoinnissa.

Voit katsoa seuraavat opetusohjelmat VestaCP-paneelissa ▼

发表 评论

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

Siirry alkuun