VestaCP Nadat die WEB-diens die "phpfcgid"-sjabloon gekies het, veroorsaak 'n groot aantal PHP-CGI-prosesse dat die geheue vinnig uitgeput word:
- Ek het basies 'n paar uur lank nie meer geheue gehad nadat ek die bediener herbegin het nie.
- Die voorheen ledige PHP-CGI-proses word nie doodgemaak nie, en een proses loop byna 1 subprosesse, wat ten minste 20M geheue verbruik.
Gebruik in SSH htop
opdrag (installasie vereis), kan jy hierdie status sien ▼
As jy 'n foutboodskap "-bash: htop: opdrag nie gevind nie" kry wanneer jy die htop-opdrag gebruik, sien asseblief hierdie tutoriaal vir die oplossing ▼
'n Groot aantal PHP-CGI prosesse veroorsaak dat die geheue vinnig uitgeput word.Die probleem lê in VestaCPCentOSIn die phpfcgid-sjabloon word 'n ongeoptimaliseerde konfigurasie gebruik.
- VestaCP in die phpfcgid-sjabloon, stel 1 PHP-CGI-proses in om tot 20 kinderprosesse uit te voer.
Sien /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh
Reël 13 van die lêer:
export PHP_FCGI_CHILDREN=20
So 'n opstelling oortree egter Apache se waarskuwing in die PHP-subprosesbestuursdokumentasie:
PHP kinderprosesbestuur (PHP_FCGI_CHILDREN) moet altyd gedeaktiveer word met mod_fcgid, wat slegs een versoek op 'n slag sal stuur na toepassingsprosesse wat dit veroorsaak het; dus sal enige kinderprosesse wat deur PHP geskep is nie effektief gebruik word nie. (Boonop sal die PHP-kindprosesse dalk nie behoorlik beëindig word nie. .) By verstek, en met die omgewingsveranderlike instelling PHP_FCGI_CHILDREN=0, PHP kinderprosesbestuur is gedeaktiveer.
Omdat in Apache se mod_fcgid-module, die PHP-CGI-proses net op een versoek kan reageer en op 'n slag kan loop, is die PHP-CGI-kinderproses baie ondoeltreffend.
Daarom moet die instellings vir PHP-subprosesbestuur direk gedeaktiveer word ▼
PHP_FCGI_CHILDREN=0
Terselfdertyd, as jy reeds 'n gegenereerde virtuele gasheer het, moet jy die konfigurasielêers van alle webwerwe verander ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
Nadat u die fcgi-starter-konfigurasielêer oopgemaak het, voeg die volgende ▼ in
export PHP_FCGI_CHILDREN=20
Verander na ▼
export PHP_FCGI_CHILDREN=0
- Na wysiging sal PHP-subprosesbestuur afgeskakel word in mod_fcgid-modus.
- Die PHP-CGI-proses sal nie meer kinderprosesse voortbring nie, wat baie geheue kan bespaar.
VestaCP stel ook nie 'n beëindigingsmeganisme vir ledige prosesse in nie:
- Alle nuut uitgevoerde PHP-CGI-prosesse sal voortgaan om geheue te gebruik totdat die stelsel herlaai word.
Om dit reg te stel, voeg net die mod_fcgid config lêer by /etc/httpd/conf.d/fcgid.conf
Voeg die volgende instellings by in ▼
FcgidIdleTimeout 120
- Stel Apache om PHP-CGI-prosesse wat vir 2 minute (120 sekondes) ledig is, outomaties dood te maak.
Nadat die opstelling voltooi is, herbegin die Apache-diens ▼
service httpd restart
Nadat die diens herbegin is, sal die honderde PHP-CGI-prosesse wat voorheen in HTOP vertoon is, nie meer vertoon word nie.
Tipies verbruik 'n enkele PHP-CGI-proses vir 'n enkele Vesta CP-gebruiker 30 tot 40 miljoen geheue, wat ten volle bevredigend isLinuxgasheer vereistes.
daarom,网络 营销mense wil goed doenSEO, is dit baie belangrik om die konfigurasie van Vesta CP en templates ^_^ te optimaliseer
U kan na die volgende tutoriale op die VestaCP-paneel kyk ▼
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) het "Optimaliseer VestaCP phpfcgid Template Configuration Process Multiple Memory Exhaustion 500 Errors" gedeel, wat vir jou nuttig is.
Welkom om die skakel van hierdie artikel te deel:https://www.chenweiliang.com/cwl-735.html
Welkom by die Telegram-kanaal van Chen Weiliang se blog om die nuutste opdaterings te kry!
📚 Hierdie gids bevat groot waarde, 🌟Dit is 'n seldsame geleentheid, moet dit nie misloop nie! ⏰⌛💨
Share en like as jy wil!
Jou deel en laaiks is ons voortdurende motivering!