Оптимізація процесу налаштування шаблону VestaCP phpfcgid Вичерпання кількох пам’яті 500 помилок

VestaCP Після того, як WEB-служба вибирає шаблон "phpfcgid", велика кількість процесів PHP-CGI призводить до швидкого виснаження пам'яті:

  • У мене фактично не вистачало пам’яті протягом кількох годин після перезапуску сервера.
  • Попередньо неактивний процес PHP-CGI не припиняється, і один процес запускає майже 1 підпроцесів, споживаючи щонайменше 20 МБ пам’яті.

Використовується в SSH htop (потрібна інсталяція), ви можете переглянути цей статус ▼

Після вибору шаблону "phpfcgid" для веб-сервісу VestaCP, велика кількість процесів PHP-CGI швидко вичерпала пам'ять.

Якщо під час використання команди 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-каналу!

Поділіться та поставте лайк, якщо вам подобається! Ваші розповсюдження та вподобання — наша постійна мотивація!

 

发表 评论

Ваша електронна адреса не буде опублікована. 必填 项 已 用 * Етикетка

Прокрутка до початку