Справочник на статиите
HestiaCP Персонализиране на PHP-FPM шаблони на практика: Вземайки PHP 8.5 като пример
След като трафикът на сървъра се увеличи рязко, шаблонът по подразбиране PHP-FPM, подобно на хартиена защитна стена, моментално се изгаря, което води до срив на производителността.
Ето защо ти казвам:Персонализираните шаблони не са опция, а въпрос на живот и смърт.
Защо да използвате персонализиран шаблон?
В HestiaCP шаблонът по подразбиране ще бъде презаписан със системните актуализации.
Това означава, че параметрите, които старателно сте настроили, могат да изчезнат незабавно след актуализация.
Според официалната документация на PHP,pm.max_children Тези параметри директно определят възможностите за паралелизъм; след като бъдат нулирани, производителността на уебсайта ще спадне драстично.
Следователно, копирайте шаблона по подразбиране и създайте нов. custom-PHP8_5.tplЕдинственият начин да се осигури стабилност е да се избере в панела.

Основната логика на управлението на процесите
Предимства на динамичния режим
pm = dynamic Това е първият избор за сценарии с висока паралелност.
Той автоматично настройва броя на процесите въз основа на натоварването, за да избегне разхищение на ресурси.
На 12GB RAM, 8-ядрен процесор На сървърите динамичният режим позволява на системата да остане стабилна по време на пикови периоди, вместо да бъде заседнала на фиксирана стойност.
Фина настройка на контрола на броя на процесите
Максимален брой дъщерни процеси
pm.max_children = 300
Това число не е избрано произволно.
Според доклада от теста за производителност на Nginx + PHP-FPM (nginx.com в Bing) Според данните, един PHP процес изразходва приблизително 30–40MB памет.
В среда с 12GB памет, 300 процеса ще заемат приблизително 9GB, оставяйки достатъчно място за системата и базата данни, което е точно както трябва.
Брой стартирани процеси
pm.start_servers = 32
Това гарантира, че уебсайтът разполага с достатъчно процеси за обработка на заявки при стартиране, предотвратявайки забавяне по време на студени стартирания.
Контрол на процеса на празен ход
pm.min_spare_servers = 16pm.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 Персонализиран PHP-FPM шаблон: Тайни за оптимизация на производителността в PHP 8.5“, споделена тук, може да ви бъде полезна.
Добре дошли да споделите връзката към тази статия:https://www.chenweiliang.com/cwl-34423.html
