Die HestiaCP php-fpm-proses neem baie SVE-hulpbronne in beslag. Hoe kan ek dit optimaliseer?

HestiaCP Bediener SVE oplewing? 'n Volledige gids om die PHP-FPM-proses te optimaliseer!

Die HestiaCP php-fpm-proses neem baie SVE-hulpbronne in beslag. Hoe kan ek dit optimaliseer?

Is die bediener SVE altyd op 100%? Die waaier draai wild? Vertraag die spoed van die opening van die webwerf?Die skuldige kan php-fpm wees!

Ek het onlangs ontdek chenweiliang.com Hierdie PHP swembad php-fpm Die proses het die SVE soos 'n mal mens opgeëet, en die bediener het neergestort!

Om die bediener te laat herleef, het ek 'n reeks optimaliseringsmetodes probeer en uiteindelik daarin geslaag om die SVE-gebruik te verminder.

Nou, kom ons deel dit Doeltreffende optimaliseringsgids! 🚀

1. Beperk die aantal php-fpm-prosesse

php-fpm verstek instellings kanonbeperkDie proses word onbeheerbaar geskep, wat veroorsaak dat die bediener SVE oorlaai.

Om dit te optimaliseer, kan ons die prosesbestuurparameters wysig.

oop php-fpm Konfigurasie lêers:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Verander na jou PHP-weergawe, soos PHP8.3, en verander dit na hierdie:/etc/php/8.3/fpm/pool.d/www.conf

Vra die PHP-weergawe wat deur HestiaCP gestel is

v-list-web-domain user domain.com

Bv:

v-list-web-domain abc chenweiliang.com

In die uitset sal jy iets sien soos:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Dit beteken dat die webwerf gebruik PHP 8.3.

Vind en wysig die volgende parameters:

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 后自动退出

Herlaai dan php-fpm Om dit effektief te maak:

sudo systemctl restart php-fpm

effek: Beperk die aantal prosesse om te verhoed dat php-fpm SVE-hulpbronne oorverbruik.

2. Aktiveer OPCache (om PHP-werkverrigting te verbeter)

PHP herstel die kode elke keer as dit uitgevoer word, wat 'n vermorsing van hulpbronne is.
Die oplossing? Aktiveer OPCache en kas jou PHP-kode!

编辑 php.ini dokument:

sudo nano /etc/php/*/fpm/php.ini

Voeg by of wysig die volgende:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0  # 禁用实时检测,提高性能

Nadat u gestoor het, herbegin die PHP-proses:

sudo systemctl restart php8.3-fpm

effek: Verminder herhaalde ontleding van PHP-kode, verminder SVE-las en verbeter uitvoeringsdoeltreffendheid.

3. Beperk die maksimum uitvoeringstyd van PHP-skrifte

As 'n PHP-skrip te lank loop, sal SVE-hulpbronne voortdurend beset word.
Deur 'n redelike uitteltydperk in te stel, kan dit verhoed dat "koppige" prosesse die bediener vir 'n lang tyd beset.

oop php.ini dokument:

sudo nano /etc/php/*/fpm/php.ini

Verander die volgende parameters:

max_execution_time = 30  # PHP 脚本最多执行 30max_input_time = 30  # 处理输入数据最多 30memory_limit = 256M  # 限制单个 PHP 进程的内存占用

Herbegin dan die PHP-proses:

sudo systemctl restart php-fpm

effek: Verhoed dat PHP-prosesse vir 'n lang tyd loop en verminder SVE-hulpbronvermorsing.

4. Kontroleer MySQL Stadige navraag

PHP-FPM het 'n hoë las,Dit kan veroorsaak word deur die stadige SQL-navraag!
oop MySQL Stadige navraaglogboek, vind uit die SQL-stellings wat terughou.

Wysig die MySQL-konfigurasielêer:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Voeg by:

slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1  # 超过 1 秒的查询会被记录

Nadat u gestoor het, herbegin MySQL:

sudo systemctl restart mysql

Gebruik dan mysqldumpslow Ontleed stadige navrae:

mysqldumpslow -s c -t 10 /var/log/mysql-slow.log

effek: Vind tydrowende SQL-navrae uit, optimaliseer databasiswerkverrigting en verminder indirek PHP-lading.

5. Beperk Memcached hulpbrongebruik

As ek na die proseslys kyk, het ek gevind Geheugenkas-proses CPU-gebruik is 24.8%!
Dit kan wees dat die kastoewysing te groot is, wat veroorsaak dat die SVE 'n groot hoeveelheid data verwerk.

调整 memcached Opstelling:

sudo nano /etc/memcached.conf

Hersien:

-m 32  # 限制 Memcached 内存使用 32MB

Herlaai dan:

sudo systemctl restart memcached

effek: Verminder die SVE-las van die Memcached-proses en verbeter kasdoeltreffendheid.

6. Aktiveer Nginx om statiese hulpbronne te kas

Baie keer verwerk PHP versoeke wat 'n groot aantal CSS, JS, beelde, maar hierdie lêers het glad nie PHP-ontleding nodig nie!
Die oplossing? Gebruik Nginx om statiese hulpbronne te kas!

Wysig Nginx-konfigurasie:

sudo nano /etc/nginx/nginx.conf

Voeg by:

location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
    expires max;
    log_not_found off;
}

Nadat u gestoor het, herbegin Nginx:

sudo systemctl restart nginx

effek: Verminder die aantal kere wat PHP statiese lêers verwerk en verminder SVE-gebruik.

7. Vind die PHP-skrip wat die meeste SVE gebruik

As die SVE na optimalisering steeds te hoog is, kan dit wees dat sommige PHP-skrifte wild loop.
Gebruik die volgende opdrag om die PHP-proses met die hoogste SVE-gebruik uit te vind:

ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php

As jy vind dat 'n PHP-skrip te veel SVE opneem, kan jy dit direk doodmaak:

kill -9 PID

effek: Identifiseer die "slegte appels" akkuraat en voorkom dat die PHP-proses die SVE vir 'n lang tyd beset.

Opsomming: 7 maniere om PHP-FPM te optimaliseer

Beperk die aantal PHP-FPM-prosesse, om SVE-oorlading te voorkom
Aktiveer OPCache, verminder herhaalde ontleding van PHP-kode
Stel PHP-timeout in, om langtermyn werking te voorkom
Gaan MySQL stadige navrae na, optimaliseer databasisnavraagprestasie
Pas Geheue-geheue aan, wat CPU-las verminder
Aktiveer Nginx statiese kas, wat die PHP-ontledingslas verminder
Vind PHP-skrifte met 'n hoë SVE-gebruik, presiese optimalisering

ter afsluiting

Bedieneroptimalisering is soos fiksheid, jy moet presiese aanpassings maak en nie rondmors nie!
Na 'n reeks optimaliserings het my bediener SVE-lading gedaal 80% af tot 15%, maak die webwerf twee keer so vinnig oop!
As jou bediener soortgelyke probleme het, probeer hierdie metodes! 💪

???? Neem nou aksie! Optimaliseer jou PHP-FPM en stoor jou bediener! ????

发表 评论

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde word gebruik * Etiket

Scroll na bo