Каталог артыкулаў
Пікі нагрузкі на працэсар сервера HestiaCP ? Поўнае кіраўніцтва па аптымізацыі працэсаў PHP-FPM!

Ці пастаянна загружаны працэсар вашага сервера на 100%? Ці круцяцца вентылятары як шалёныя? Ці павольна загружаецца ваш сайт? Магчыма, віной таму php-fpm!
Я нядаўна выявіў chenweiliang.com Гэта PHP пул php-fpm Працэс з'еў працэсар як шалёны, і сервер выйшаў з ладу!
Каб аднавіць сервер, я паспрабаваў шэраг метадаў аптымізацыі і, нарэшце, дамогся зніжэння нагрузкі на працэсар.
А цяпер давайце падзялімся гэтым эфектыўным кіраўніцтвам па аптымізацыі ! 🚀
1. Абмежаваць колькасць працэсаў php-fpm
Налады php-fpm па змаўчанні могуць ствараць неабмежаваную колькасць працэсаў, што прыводзіць да перагрузкі працэсара сервера.
Каб аптымізаваць яго, мы можам змяніць параметры кіравання працэсам.
уключыць php-fpm Файлы канфігурацыі:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Змяніце версію PHP на сваю, напрыклад, PHP8.3, і зменіце яе на наступнае:
/etc/php/8.3/fpm/pool.d/www.conf
Запытаць версію PHP, усталяваную HestiaCP
v-list-web-domain user domain.com
E.g:
v-list-web-domain abc chenweiliang.com
На выхадзе вы ўбачыце нешта накшталт:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Гэта паказвае, што вэб-сайт выкарыстоўвае PHP 8.3.
Знайдзіце і змяніце наступныя параметры:
pm = dynamic
pm.max_children = 16 ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 4 ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2 ; 最小空闲进程数
pm.max_spare_servers = 7 ; 最大空闲进程数
pm.max_requests = 3000 ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s ; 空闲进程 10s 后自动退出
Затым перазагрузіце php-fpm Каб зрабіць гэта эфектыўным:
sudo systemctl restart php-fpm
✅Эфект : Абмяжоўвае колькасць працэсаў, каб прадухіліць празмернае спажыванне рэсурсаў працэсара php-fpm.
2. Уключыце OPCache (для павышэння прадукцыйнасці PHP)
PHP паўторна аналізуе код кожны раз, калі ён выконваецца, што з'яўляецца марнаваннем рэсурсаў.
Рашэнне? Уключыце OPCache і кэшуйце свой PHP-код!
编辑 php.ini дакумент:
sudo nano /etc/php/*/fpm/php.ini
Дадайце або змяніце наступнае:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Пасля захавання перазапусціце працэс PHP:
sudo systemctl restart php8.3-fpm
✅Эфект : Памяншае паўторны парсінг PHP-кода, зніжае нагрузку на працэсар і павышае эфектыўнасць выканання.
3. Абмяжуйце максімальны час выканання PHP-скрыптоў
Калі скрыпт PHP працуе занадта доўга, рэсурсы ЦП будуць пастаянна занятыя.
Устанаўленне разумнага перыяду тайм-аўту можа прадухіліць «упартыя» працэсы ад занятасці сервера на працягу доўгага часу.
уключыць php.ini дакумент:
sudo nano /etc/php/*/fpm/php.ini
Змяніце наступныя параметры:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Затым перазапусціце працэс PHP:
sudo systemctl restart php-fpm
✅Эфект : Запабягае працяглай працы PHP-працэсаў, што змяншае спажыванне рэсурсаў працэсара.
4. Праверыць MySQL Павольны запыт
PHP-FPM мае высокую нагрузку,Гэта можа быць выклікана павольным SQL-запытам!
开启 MySQL Журнал павольных запытаў, высвятліце аператары SQL, якія стрымліваюць.
Адрэдагуйце файл канфігурацыі MySQL:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Дапаўненне:
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1 # 超过 1 秒的查询会被记录
Пасля захавання перазапусціце MySQL:
sudo systemctl restart mysql
Затым выкарыстоўвайце mysqldumpslow Прааналізуйце павольныя запыты:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅Вынік : Вызначэнне працаёмкіх SQL-запытаў, аптымізацыя прадукцыйнасці базы дадзеных і ўскоснае зніжэнне нагрузкі на PHP.
5. Абмежаванні Memcached Выкарыстанне рэсурсаў
Гледзячы на спіс працэсаў, я знайшоў Загрузка працэсара Memcached складае 24.8%!
Магчыма, размеркаванне кэша занадта вялікае, што прымушае працэсар апрацоўваць вялікую колькасць даных.
调整 memcached Канфігурацыя:
sudo nano /etc/memcached.conf
перагледзець:
-m 32 # 限制 Memcached 内存使用 32MB
Затым перазагрузіце:
sudo systemctl restart memcached
✅Эфект : Зніжае нагрузку на працэсар Memcached і павышае эфектыўнасць кэшавання.
6. Уключыце Nginx для кэшавання статычных рэсурсаў
Шмат разоў PHP апрацоўвае запыты, якія змяшчаюць вялікую колькасць CSS, JS, выявы, але гэтыя файлы зусім не патрабуюць разбору PHP!
Рашэнне? Выкарыстоўвайце Nginx для кэшавання статычных рэсурсаў!
Рэдагаваць канфігурацыю Nginx:
sudo nano /etc/nginx/nginx.conf
Дапаўненне:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Пасля захавання перазапусціце Nginx:
sudo systemctl restart nginx
✅Вынік : Памяншае колькасць разоў, калі PHP апрацоўвае статычныя файлы, тым самым зніжаючы выкарыстанне працэсара.
7. Знайдзіце скрыпт PHP, які выкарыстоўвае больш за ўсё працэсара
Калі працэсар па-ранейшаму занадта высокі пасля аптымізацыі, магчыма, некаторыя PHP-скрыпты працуюць шалёна.
Выкарыстоўвайце наступную каманду, каб даведацца пра працэс PHP з самым высокім выкарыстаннем працэсара:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Калі вы выявіце, што скрыпт PHP займае занадта шмат працэсара, вы можаце забіць яго непасрэдна:
kill -9 PID
✅Вынік : Дакладна вызначае «гнілыя яблыкі» і прадухіляе працяглую загружанасць працэсара працэсамі PHP.
Рэзюмэ: 7 спосабаў аптымізацыі PHP-FPM
✅ Абмежаваць колькасць працэсаў PHP-FPM, каб прадухіліць перагрузку працэсара
✅ Уключыць OPCache, паменшыць шматразовы аналіз кода PHP
✅ Ўстаноўка часу чакання PHP, каб прадухіліць працяглую эксплуатацыю
✅ Праверка павольных запытаў MySQL, аптымізаваць прадукцыйнасць запытаў да базы дадзеных
✅ Адрэгулюйце памяць Memcached, зніжаючы нагрузку на працэсар
✅ Уключыць статычны кэш Nginx, памяншаючы нагрузку на аналіз PHP
✅ Знайдзіце PHP-скрыпты з высокай загрузкай працэсара, дакладная аптымізацыя
у заключэнне
Аптымізацыя сервера - гэта як фітнес, вам трэба зрабіць дакладныя налады і не важдацца!
Пасля шэрагу аптымізацый нагрузка на працэсар майго сервера знізілася з З 80% да 15%, сайт адкрываецца ўдвая хутчэй!
Калі на вашым серверы ёсць падобныя праблемы, паспрабуйце гэтыя метады! 💪
👉Дзейнічайце зараз! Аптымізуйце свой PHP-FPM і захавайце свой сервер! 🚀
Спадзяюся, артыкул «Працэс HestiaCP php-fpm спажывае шмат рэсурсаў працэсара, як яго аптымізаваць?», апублікаваны ў блогу Чэня Вэйляна ( https://www.chenweiliang.com/ ), будзе вам карысным.
Не саромейцеся падзяліцца спасылкай на гэты артыкул: https://www.chenweiliang.com/cwl-32490.html
