VestaCP Після того, як WEB-служба вибирає шаблон "phpfcgid", велика кількість процесів PHP-CGI призводить до швидкого виснаження пам'яті:
- У мене фактично не вистачало пам’яті протягом кількох годин після перезапуску сервера.
- Попередньо неактивний процес PHP-CGI не припиняється, і один процес запускає майже 1 підпроцесів, споживаючи щонайменше 20 МБ пам’яті.
Використовується в SSH htop
(потрібна інсталяція), ви можете переглянути цей статус ▼
Якщо під час використання команди htop ви отримуєте повідомлення про помилку «-bash: 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 до 40 МБ пам’яті, що повністю задовольняєLinuxвимоги до господаря.
томуІнтернет-маркетинглюди хочуть робити добреSEO, дуже важливо оптимізувати конфігурацію Vesta CP і шаблонів ^_^
Ви можете переглянути наступні навчальні посібники на панелі VestaCP ▼
Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ ) поділився «Оптимізацією процесу конфігурації шаблону VestaCP phpfcgid Multiple Memory Exhaustion 500 Errors», який є корисним для вас.
Ласкаво просимо поділитися посиланням на цю статтю:https://www.chenweiliang.com/cwl-735.html
Ласкаво просимо до каналу Telegram у блозі Чень Вейляна, щоб отримувати останні оновлення!
📚 Цей посібник має величезну цінність. 🌟Це рідкісна можливість, не пропустіть її! ⏰⌛💨
Поділіться та вподобайте, якщо вам подобається!
Ваші публікації та лайки є нашою постійною мотивацією!