Працэс HestiaCP php-fpm займае шмат рэсурсаў працэсара. Як я магу яго аптымізаваць?

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

Працэс 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 脚本最多执行 30max_input_time = 30  # 处理输入数据最多 30memory_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

Каб адкрыць больш схаваных хітрасцяў🔑, далучайцеся да нашага канала ў Telegram!

Падзяліцеся і пастаўце лайкі, калі вам гэта падабаецца! Вашы акцыі і лайкі - наша пастаянная матывацыя!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

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