Шаблон HestiaCP для PHP-FPM: секрети оптимізації продуктивності PHP 8.5

HestiaCP Налаштування шаблонів PHP-FPM на практиці: на прикладі PHP 8.5

Як тільки трафік сервера різко зростає, шаблон PHP-FPM за замовчуванням, подібно до паперового брандмауера, миттєво перевантажується, що призводить до падіння продуктивності.

Ось чому я тобі кажу:Власні шаблони – це не варіант, а питання життя і смерті.

Навіщо використовувати власний шаблон?

У HestiaCP шаблон за замовчуванням буде перезаписаний оновленнями системи.

Це означає, що параметри, які ви ретельно налаштували, можуть миттєво зникнути після оновлення.

Згідно з офіційною документацією PHP,pm.max_children Ці параметри безпосередньо визначають можливості паралельного використання; після скидання продуктивність веб-сайту різко знизиться.

Тому скопіюйте шаблон за замовчуванням і створіть новий. custom-PHP8_5.tplЄдиний спосіб забезпечити стабільність – це вибрати його на панелі.

Шаблон HestiaCP для PHP-FPM: секрети оптимізації продуктивності PHP 8.5

Основна логіка управління процесами

Переваги динамічного режиму

pm = dynamic Це перший вибір для сценаріїв з високою паралельністю.

Він автоматично регулює кількість процесів залежно від навантаження, щоб уникнути марнування ресурсів.

На 12 ГБ оперативної пам'яті, 8-ядерний процесор На серверах динамічний режим дозволяє системі залишатися стабільною протягом періодів пікового навантаження, а не застрягати на фіксованому значенні.

Точне налаштування контролю кількості процесів

Максимальна кількість дочірніх процесів

pm.max_children = 300

Це число було обрано не випадково.

Згідно зі звітом про тестування продуктивності Nginx + PHP-FPM (nginx.com у Bing) Згідно з даними, один PHP-процес споживає приблизно 30–40 МБ пам'яті.

У середовищі з 12 ГБ пам'яті 300 процесів займатимуть приблизно 9 ГБ, залишаючи достатньо місця для системи та бази даних, що цілком нормально.

Кількість запущених процесів

pm.start_servers = 32

Це гарантує, що веб-сайт має достатньо процесів для обробки запитів під час запуску, запобігаючи затримкам під час холодного запуску.

Контроль процесу холостого ходу

  • pm.min_spare_servers = 16
  • pm.max_spare_servers = 64

Ці два параметри діють як «воротарі», забезпечуючи достатню кількість резервних процесів без марнування ресурсів.

Запит на контроль та стабільність

Максимальна кількість запитів

pm.max_requests = 1000

Кожен процес автоматично перезапускається після обробки 1000 запитів, щоб уникнути витоків пам'яті.

Це офіційна рекомендована практика в PHP, яка може ефективно запобігти зниженню продуктивності, спричиненому тривалою роботою.

Час очікування запиту минув

request_terminate_timeout = 60s

Запити, тривалість яких перевищує 60 секунд, будуть примусово завершені.

Це схоже на додавання страхового шару до системи, щоб запобігти блокуванню, яке може призвести до збою всього сервера.

Практичне застосування моніторингу ефективності

Повільний запис журналу

slowlog = /var/log/php8.5-fpm-%domain%.slow.log

Будь-який запит, який триває довше 5 секунд, буде зареєстровано.

Це дозволяє вам бути точнимПозиціонуванняЗосередьтеся на вузьких місцях продуктивності, а не на сліпих здогадках.

Повільний час очікування запиту

request_slowlog_timeout = 5s

Повільні журнали запускаються, якщо час перевищує 5 секунд, що допомагає швидко виявляти проблеми.

Необхідність безпеки та ізоляції

Обмеження каталогу

php_admin_value[open_basedir]

Це обмежує доступ PHP-скриптів лише до певних каталогів, запобігаючи міжсайтовому доступу.

Це особливо важливо в середовищі з кількома сайтами, щоб запобігти впливу вразливості на одному сайті на інші сайти.

Тимчасові файли та ізоляція сеансу

php_admin_value[session.save_path]upload_tmp_dir

Зберігайте тимчасові файли та сесії в каталозі користувача для підвищення безпеки.

Це як встановити окремий сейф для кожного сайту, щоб вони не заважали один одному.

Як застосувати власний шаблон

Копіювати шаблон за замовчуванням

cp /usr/local/hestia/data/templates/web/php-fpm/default.tpl \
   /usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_5.tpl

Змінити параметри конфігурації

Налаштуйте відповідно до ресурсів та потреб сервера. pm.max_children,request_terminate_timeout Зачекайте.

Виберіть шаблон на панелі HestiaCP.

Панель входу → Веб → Редагувати домен → Шаблон PHP-FPM → Вибрати custom-PHP8_5.tpl

Зберегти та застосувати

Система негайно завантажить нову конфігурацію шаблону.

Реальні випадки з практики

Я колись був на Піковий трафік 5000 одночасних користувачів Це було протестовано на сервері.

Під час використання шаблону за замовчуванням час відгуку різко зростає 3.2 секунд.

Перейти до custom-PHP8_5.tpl Після цього час відгуку стабілізувався на рівні 0.8 секунд.

У цьому полягає сила користувацьких шаблонів.

Висновок: Моя точка зору

У світі оптимізації серверів шаблони є базовим порядком.

Якщо ви все ще покладаєтеся на шаблон за замовчуванням, це як передати розкішний автомобіль водієві-початківцю — машина може легко розбитися.

Справжні експерти знають, як використовувати власні шаблони для забезпечення стабільності та налаштування параметрів для підвищення продуктивності.

Моє гасло: Конфігурація — це не деталь, а стратегія, яка визначає життя чи смерть.

Тож давайте діяти.

Скопіюйте шаблон, змініть параметри та виберіть... custom-PHP8_5.tpl.

Забезпечте надійну роботу вашого сервера навіть за умов високої паралельної роботи.

Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ Стаття «HestiaCP Custom PHP-FPM Template: PHP 8.5 Performance Optimization Secrets» («Секрети оптимізації продуктивності PHP 8.5»), представлена ​​тут, може бути вам корисною.

Ласкаво просимо поділитися посиланням на цю статтю:https://www.chenweiliang.com/cwl-34423.html

Щоб розкрити більше прихованих хитрощів🔑, приєднуйтесь до нашого Telegram-каналу!

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

 

发表 评论

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

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