VestaCP Kun WEB-palvelu on valinnut "phpfcgid"-mallin, suuri määrä PHP-CGI-prosesseja aiheuttaa muistin nopean tyhjentymisen:
- 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 ▼
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 aiheuttaa muistin nopean tyhjenemisen, mikä on VestaCP:ssäCentOSphpfcgid-mallissa käytetään optimoimatonta kokoonpanoa.
- 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) tulee aina poistaa käytöstä mod_fcgid:llä, joka reitittää vain yhden pyynnön kerrallaan synnyttämiinsä sovellusprosesseihin, joten PHP:n luomia aliprosesseja ei käytetä tehokkaasti. (Lisäksi PHP:n aliprosesseja ei ehkä lopeteta kunnolla .) Oletusarvoisesti ja ympäristömuuttujan asetuksella PHP_FCGI_CHILDREN=0, PHP-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 PHP-CGI-prosessi yhdelle Vesta CP -käyttäjälle kuluttaa 30-40M muistia, mikä on täysin tyydyttävääLinuxisäntävaatimukset.
siksi,网络 营销ihmiset haluavat tehdä hyvääSEO, on erittäin tärkeää optimoida Vesta CP:n ja mallien ^_^ kokoonpano
Voit katsoa seuraavat opetusohjelmat VestaCP-paneelissa ▼
Hope Chen Weiliang -blogi ( https://www.chenweiliang.com/ ) jaettu "Optimizing VestaCP phpfcgid Template Configuration Process Multiple Memory Exhaustion 500 Errors", josta on apua sinulle.
Tervetuloa jakamaan tämän artikkelin linkki:https://www.chenweiliang.com/cwl-735.html
Tervetuloa Chen Weiliangin blogin Telegram-kanavalle saadaksesi viimeisimmät päivitykset!
📚 Tämä opas sisältää valtavasti arvoa, 🌟Tämä on harvinainen tilaisuus, älä missaa sitä! ⏰⌛💨
Jaa ja tykkää jos tykkäät!
Jakamasi ja tykkäyksesi ovat jatkuva motivaatiomme!