Optimalizácia procesu konfigurácie šablóny VestaCP phpfcgid vyčerpanie viacerých pamätí 500 chýb

Po výbere šablóny „phpfcgid“ pre webovú službu VestaCP veľké množstvo procesov PHP-CGI rýchlo vyčerpalo pamäť.

  • V podstate mi dochádzala pamäť niekoľko hodín po reštartovaní servera.
  • Predtým nečinný proces PHP-CGI nie je zabitý a jeden proces beží takmer 1 podprocesov, ktoré spotrebúvajú najmenej 20 miliónov pamäte.

Používa sa v SSH htop (vyžaduje sa inštalácia), môžete si pozrieť tento stav ▼

Po výbere šablóny „phpfcgid“ pre webovú službu VestaCP veľké množstvo procesov PHP-CGI rýchlo vyčerpalo pamäť.

Ak sa pri použití príkazu htop zobrazí chybové hlásenie „-bash: htop: príkaz nenájdený“, riešenie nájdete v tomto návode ▼

Veľký počet procesov PHP-CGI spôsoboval rýchle vyčerpanie pamäte. Problém spočíva v tom, že VestaCP používa neoptimalizovanú konfiguráciu v šablóne phpfcgid pre CentOS .

  • VestaCP v šablóne phpfcgid nastavte 1 proces PHP-CGI na spustenie až 20 podriadených procesov.

Pozri /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Riadok 13 súboru:

export PHP_FCGI_CHILDREN=20

Takéto nastavenie však porušuje varovanie Apache v dokumentácii správy podprocesov PHP:

Správa podradených procesov PHP ( PHP_FCGI_CHILDREN ) by mala byť vždy vypnutá pomocou mod_fcgid, ktorý bude smerovať iba jednu požiadavku naraz do procesov aplikácie, ktoré vytvoril; preto žiadne podradené procesy vytvorené PHP nebudú efektívne použité. (Okrem toho, podradené procesy PHP nemusia byť správne ukončené.) Štandardne a s nastavením premennej prostredia PHP_FCGI_CHILDREN=0 je správa podradených procesov PHP vypnutá.

Pretože v module mod_fcgid Apache môže proces PHP-CGI odpovedať iba na jednu požiadavku a spustiť sa naraz, podriadený proces PHP-CGI je veľmi neefektívny.

Preto by sa nastavenia pre správu podprocesov PHP mali vypnúť priamo ▼

PHP_FCGI_CHILDREN=0

Zároveň, ak už máte vygenerovaného virtuálneho hostiteľa, musíte upraviť konfiguračné súbory všetkých webových stránok ▼

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

Po otvorení konfiguračného súboru fcgi-starter vložte nasledujúce ▼

export PHP_FCGI_CHILDREN=20

Upravené na ▼

export PHP_FCGI_CHILDREN=0
  • Po úprave bude správa podprocesov PHP vypnutá v režime mod_fcgid.
  • Proces PHP-CGI už nebude vytvárať podradené procesy, čo môže ušetriť veľa pamäte.

VestaCP tiež nenastavuje mechanizmus ukončenia pre nečinné procesy:

  • Všetky novo spustené procesy PHP-CGI budú naďalej používať pamäť, kým sa systém nereštartuje.

Ak to chcete vyriešiť, pridajte konfiguračný súbor mod_fcgid /etc/httpd/conf.d/fcgid.conf Do ▼ pridajte nasledujúce nastavenia

FcgidIdleTimeout 120
  • Nastavte Apache na automatické zabíjanie procesov PHP-CGI, ktoré sú nečinné 2 minúty (120 sekúnd).

Po dokončení nastavenia reštartujte službu Apache ▼

service httpd restart

Po reštarte služby sa už nebudú zobrazovať stovky procesov PHP-CGI, ktoré boli predtým zobrazené v HTOP.

Jeden proces PHP-CGI pre jedného používateľa Vesta CP zvyčajne spotrebuje 30 až 40 MB pamäte, čo je pre hostiteľa so systémom Linux viac než dosť.

Optimalizácia konfigurácie obsahu a šablón Vesta je preto kľúčová pre online marketérov , ktorí chcú vyniknúť v SEO .

Na paneli VestaCP ▼ si môžete pozrieť nasledujúce návody

发表 评论

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

Prejdite na začiatok