VestaCP Ko spletna storitev izbere predlogo "phpfcgid", veliko število procesov PHP-CGI povzroči hitro praznjenje pomnilnika:
- V bistvu mi je nekaj ur po ponovnem zagonu strežnika zmanjkovalo pomnilnika.
- Prej nedejaven proces PHP-CGI se ne uniči in en proces izvaja skoraj 1 podprocesov, ki porabijo vsaj 20 MB pomnilnika.
Uporablja se v SSH htop
ukaz (potrebna je namestitev), si lahko ogledate to stanje ▼
Če se prikaže sporočilo o napaki »-bash: htop: ukaz ni bil najden«, ko uporabite ukaz htop, glejte to vadnico za rešitev ▼
Veliko število PHP-CGI procesov povzroča hitro praznjenje pomnilnika, problem je v VestaCPCentOSV predlogi phpfcgid je uporabljena neoptimizirana konfiguracija.
- VestaCP v predlogi phpfcgid nastavite 1 proces PHP-CGI za izvajanje do 20 podrejenih procesov.
glej /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh
13. vrstica datoteke:
export PHP_FCGI_CHILDREN=20
Vendar pa takšna nastavitev krši opozorilo Apache v dokumentaciji za upravljanje podprocesov PHP:
Upravljanje podrejenih procesov PHP (PHP_FCGI_CHILDREN) mora biti vedno onemogočen z mod_fcgid, ki bo samo eno zahtevo naenkrat usmeril k procesom aplikacije, ki jih je ustvaril; zato podrejeni procesi, ki jih ustvari PHP, ne bodo učinkovito uporabljeni. (Poleg tega podrejeni procesi PHP morda ne bodo pravilno prekinjeni). .) Privzeto in z nastavitvijo spremenljivke okolja PHP_FCGI_CHILDREN=0, upravljanje podrejenega procesa PHP je onemogočeno.
Ker se lahko v Apachejevem modulu mod_fcgid proces PHP-CGI odzove le na eno zahtevo in se izvaja naenkrat, je podrejeni proces PHP-CGI zelo neučinkovit.
Zato je treba nastavitve za upravljanje podprocesov PHP neposredno onemogočiti ▼
PHP_FCGI_CHILDREN=0
Hkrati, če že imate ustvarjenega virtualnega gostitelja, morate spremeniti konfiguracijske datoteke vseh spletnih mest ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
Ko odprete konfiguracijsko datoteko fcgi-starter, vstavite naslednje ▼
export PHP_FCGI_CHILDREN=20
Spremeni v ▼
export PHP_FCGI_CHILDREN=0
- Po spremembi bo upravljanje podprocesov PHP izklopljeno v načinu mod_fcgid.
- Proces PHP-CGI ne bo več ustvaril podrejenih procesov, kar lahko prihrani veliko pomnilnika.
Prav tako VestaCP ne nastavi mehanizma prekinitve za nedejavne procese:
- Vsi na novo izvedeni procesi PHP-CGI bodo še naprej uporabljali pomnilnik, dokler se sistem znova ne zažene.
Če želite to popraviti, preprosto dodajte konfiguracijsko datoteko mod_fcgid /etc/httpd/conf.d/fcgid.conf
V ▼ dodajte naslednje nastavitve
FcgidIdleTimeout 120
- Nastavite Apache, da samodejno zaustavi procese PHP-CGI, ki so nedejavni 2 minuti (120 sekund).
Ko je nastavitev končana, znova zaženite storitev Apache ▼
service httpd restart
Po ponovnem zagonu storitve na stotine procesov PHP-CGI, ki so bili prej prikazani v HTOP, ne bodo več prikazani.
Običajno en sam proces PHP-CGI za enega uporabnika Vesta CP porabi od 30 do 40 milijonov pomnilnika, kar popolnoma zadovoljiLinuxzahteve gostitelja.
zato营销ljudje želijo biti dobriSEO, je zelo pomembno optimizirati konfiguracijo Vesta CP in predlog ^_^
Ogledate si lahko naslednje vadnice na plošči VestaCP ▼
Prej je Chen Weiliangov blog delil vadnico o namestitvi in konfiguraciji Monita na CentOS 6 ▼
Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) je delil "Optimiziranje procesa konfiguracije predloge VestaCP phpfcgid Multiple Memory Exhaustion 500 Errors", ki vam je v pomoč.
Dobrodošli, da delite povezavo tega članka:https://www.chenweiliang.com/cwl-735.html
Dobrodošli na kanalu Telegram spletnega dnevnika Chena Weilianga, kjer boste prejeli najnovejše posodobitve!
📚 Ta vodnik ima ogromno vrednosti, 🌟To je redka priložnost, ne zamudite je! ⏰⌛💨
Delite in všečkajte, če vam je všeč!
Vaše deljenje in všečki so naša stalna motivacija!