VestaCP След като WEB услугата избере шаблона "phpfcgid", голям брой PHP-CGI процеси причиняват бързо изчерпване на паметта:
- На практика ми липсваше памет за няколко часа след рестартиране на сървъра.
- Предишният неактивен PHP-CGI процес не е унищожен и един процес изпълнява близо 1 подпроцеса, като консумира най-малко 20M памет.
Използва се в SSH htop
команда (необходима е инсталация), можете да видите това състояние ▼
Ако получите съобщение за грешка „-bash: htop: командата не е намерена“, когато използвате командата htop, моля, вижте този урок за решението ▼
Голям брой PHP-CGI процеси причиняват бързо изчерпване на паметта.Проблемът е във VestaCPCentOSВ шаблона phpfcgid се използва неоптимизирана конфигурация.
- VestaCP в шаблона phpfcgid задайте 1 PHP-CGI процес за изпълнение на до 20 дъщерни процеса.
Вижте /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh
Ред 13 от файла:
export PHP_FCGI_CHILDREN=20
Подобна настройка обаче нарушава предупреждението на Apache в документацията за управление на PHP подпроцеси:
Управление на дъщерен процес на PHP (PHP_FCGI_CHILDREN) винаги трябва да бъде деактивиран с mod_fcgid, който ще насочва само една заявка наведнъж към процесите на приложението, които е породил; по този начин всички дъщерни процеси, създадени от PHP, няма да бъдат използвани ефективно. (Освен това, дъщерните процеси на PHP може да не бъдат прекратени правилно .) По подразбиране и с настройка на променливата на средата PHP_FCGI_CHILDREN=0, управлението на PHP дъщерен процес е деактивирано.
Тъй като в модула mod_fcgid на Apache PHP-CGI процесът може да отговори само на една заявка и да се изпълнява в даден момент, PHP-CGI дъщерният процес е много неефективен.
Следователно настройките за управление на PHP подпроцеси трябва да бъдат деактивирани директно ▼
PHP_FCGI_CHILDREN=0
В същото време, ако вече имате генериран виртуален хост, трябва да промените конфигурационните файлове на всички уебсайтове ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
След като отворите конфигурационния файл на fcgi-starter, поставете следния ▼
export PHP_FCGI_CHILDREN=20
Променен на ▼
export PHP_FCGI_CHILDREN=0
- След промяна управлението на PHP подпроцеси ще бъде изключено в режим mod_fcgid.
- Процесът PHP-CGI вече няма да създава дъщерни процеси, което може да спести много памет.
Освен това VestaCP не задава механизъм за прекратяване на неактивни процеси:
- Всички новоизпълнени PHP-CGI процеси ще продължат да използват памет, докато системата се рестартира.
За да коригирате това, просто добавете конфигурационния файл mod_fcgid /etc/httpd/conf.d/fcgid.conf
Добавете следните настройки в ▼
FcgidIdleTimeout 120
- Настройте Apache автоматично да убива PHP-CGI процеси, които са неактивни за 2 минути (120 секунди).
След като настройката приключи, рестартирайте услугата Apache ▼
service httpd restart
След като услугата бъде рестартирана, стотиците PHP-CGI процеси, които преди това са били показвани в HTOP, вече няма да се показват.
Обикновено един PHP-CGI процес за един потребител на Vesta CP консумира 30 до 40M памет, което напълно удовлетворяваLinuxизисквания на хоста.
因此,网络 营销хората искат да се справят добреSEO, много е важно да се оптимизира конфигурацията на Vesta CP и шаблоните ^_^
Можете да разгледате следните уроци в панела VestaCP ▼
По-рано блогът на Chen Weiliang сподели урок за инсталиране и конфигуриране на Monit на CentOS 6 ▼
Конфигурацията на програмата за наблюдение Monit в CentOS 7 обаче е малко по-различна от тази в CentOS 6 и не е съвсем същата.ако ти……Блог на Hope Chen Weiliang ( https://www.chenweiliang.com/ ) сподели „Оптимизиране на VestaCP phpfcgid Template Configuration Process Multiple Memory Exhaustion 500 Errors“, което е полезно за вас.
Добре дошли да споделите връзката към тази статия:https://www.chenweiliang.com/cwl-735.html
Добре дошли в канала на Telegram в блога на Chen Weiliang, за да получите най-новите актуализации!
📚 Това ръководство съдържа огромна стойност, 🌟Това е рядка възможност, не я пропускайте! ⏰⌛💨
Споделете и харесайте, ако ви харесва!
Вашите споделяния и харесвания са нашата постоянна мотивация!