Каталог артыкулаў
HestiaCP Налада шаблонаў PHP-FPM на практыцы: на прыкладзе PHP 8.5
Як толькі трафік сервера рэзка ўзрастае, шаблон PHP-FPM па змаўчанні, як папяровы брандмаўэр, імгненна перагружаецца, што прыводзіць да падзення прадукцыйнасці.
Вось чаму я табе кажу:Карыстальніцкія шаблоны — гэта не варыянт, а пытанне жыцця і смерці.
Навошта выкарыстоўваць карыстальніцкі шаблон?
У HestiaCP шаблон па змаўчанні будзе перазапісаны абнаўленнямі сістэмы.
Гэта азначае, што параметры, якія вы старанна наладжвалі, могуць імгненна знікнуць пасля абнаўлення.
Згодна з афіцыйнай дакументацыяй PHP,pm.max_children Гэтыя параметры непасрэдна вызначаюць магчымасці паралельнасці; пасля скіду прадукцыйнасць вэб-сайта рэзка знізіцца.
Такім чынам, скапіруйце шаблон па змаўчанні і стварыце новы. custom-PHP8_5.tplАдзіны спосаб забяспечыць стабільнасць — выбраць яго на панэлі.

Асноўная логіка кіравання працэсамі
Перавагі дынамічнага рэжыму
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 = 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
