Artikel Verzeechnes
HestiaCP Server CPU Spëtzen? E komplette Guide fir PHP-FPM Prozessoptimiséierung!

Ass Äre Server-CPU stänneg op 100%? Dréinen d'Ventilatoren sech wéi verréckt? Luet Är Websäit lues? De Grond kéint php-fpm sinn!
Ech hunn viru kuerzem entdeckt chenweiliang.com Dëst PHP Pool php-fpm De Prozess huet d'CPU wéi verréckt giess, an de Server ass ofgestürzt!
Fir de Server nei opzebauen, hunn ech eng Rei vun Optimiséierungsmethoden ausprobéiert an et schliisslech gelongen, de CPU-Benotzung ze reduzéieren.
Elo, loosst eis dëse Guide fir effizient Optimiséierung deelen ! 🚀
1. Limitéiert d'Zuel vu php-fpm Prozesser
Déi Standardastellungen fir php-fpm kënnen eng onlimitéiert Zuel vu Prozesser erstellen, wat zu enger Iwwerbelaaschtung vum Server-CPU féiert.
Fir et ze optimiséieren, kënne mir d'Parameter vum Prozessmanagement änneren.
uschalten php-fpm Konfiguratiounsdateien:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Wiesselt op Är PHP Versioun, wéi zum Beispill PHP8.3, an ännert se op dës:
/etc/php/8.3/fpm/pool.d/www.conf
D'PHP-Versioun offroen, déi vum HestiaCP festgeluecht gouf
v-list-web-domain user domain.com
E.g:
v-list-web-domain abc chenweiliang.com
An der Ausgab gesitt Dir eppes wéi:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Dëst weist drop hin, datt d'Websäit PHP 8.3 benotzt.
Fannt a ännert déi folgend Parameteren:
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 后自动退出
Da restart php-fpm Fir et effektiv ze maachen:
sudo systemctl restart php-fpm
✅Effekt : Limitéiert d'Zuel vun de Prozesser fir ze verhënneren datt php-fpm exzessiv CPU-Ressourcen verbraucht.
2. OPCache aktivéieren (fir d'PHP Leeschtung ze verbesseren)
PHP reparéiert de Code all Kéier wann et ausgefouert gëtt, wat eng Verschwendung vu Ressourcen ass.
D'Léisung? Aktivéiert OPCache an cache Äre PHP Code!
编辑 php.ini Dokument:
sudo nano /etc/php/*/fpm/php.ini
Füügt oder änneren déi folgend:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Nodeems Dir späichert, start de PHP-Prozess nei:
sudo systemctl restart php8.3-fpm
✅Effekt : Reduzéiert d'repetitiv Parsing vum PHP-Code, reduzéiert d'CPU-Laascht a verbessert d'Ausféierungseffizienz.
3. Limitéiert déi maximal Ausféierungszäit vu PHP Scripten
Wann e PHP Skript ze laang leeft, ginn d'CPU Ressourcen kontinuéierlech besat.
Eng raisonnabel Timeout Period ze setzen kann verhënneren datt "haartnäckege" Prozesser de Server fir eng laang Zäit besetzen.
uschalten php.ini Dokument:
sudo nano /etc/php/*/fpm/php.ini
Änneren déi folgend Parameteren:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Da starten de PHP Prozess nei:
sudo systemctl restart php-fpm
✅Effekt : Verhënnert datt PHP-Prozesser iwwer eng länger Zäit lafen, wat d'Verschwendung vu CPU-Ressourcen reduzéiert.
4. Check MySQL Lues Ufro
PHP-FPM huet eng héich Belaaschtung,Et kann duerch déi lues SQL Ufro verursaacht ginn!
Uschalten MySQL Luesen Ufro Log, Fannt d'SQL Aussoen eraus, déi zréckhalen.
Änneren d'MySQL Konfiguratiounsdatei:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Add to:
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1 # 超过 1 秒的查询会被记录
No späicheren, nei starten MySQL:
sudo systemctl restart mysql
Dann benotzen mysqldumpslow Analyse lues Ufroen:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅Resultat : Zäitopwänneg SQL-Ufroen identifizéieren, Datebankleistung optimiséieren an indirekt d'PHP-Laascht reduzéieren.
5. Restriktiounen memcached Ressourcenverbrauch
Sicht op der Prozess Lëscht, Ech fonnt Memcached Prozess CPU Notzung ass 24.8%!
Et kann sinn datt d'Cacheallokatioun ze grouss ass, sou datt d'CPU eng grouss Quantitéit un Daten veraarbecht.
Upassung memcached Konfiguratioun:
sudo nano /etc/memcached.conf
Iwwerschaffen:
-m 32 # 限制 Memcached 内存使用 32MB
Da restart:
sudo systemctl restart memcached
✅Effekt : Reduzéiert d'CPU-Laascht um Memcached-Prozess a verbessert d'Caching-Effizienz.
6. Aktivéiert Nginx fir statesch Ressourcen ze cache
Vill Mol veraarbecht PHP Ufroen déi eng grouss Zuel vu enthalen CSS, JS, Biller, awer dës Dateie brauche guer net PHP-Parsing!
D'Léisung? Benotzt Nginx fir statesch Ressourcen ze cache!
Nginx Konfiguratioun änneren:
sudo nano /etc/nginx/nginx.conf
Add to:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Nodeems Dir späichert, restart Nginx:
sudo systemctl restart nginx
✅Resultat : Reduzéiert d'Zuel vun de Veraarbechtunge vu statesche Dateien duerch PHP, wat de CPU-Notzung reduzéiert.
7. Fannt de PHP Skript deen am meeschte CPU benotzt
Wann d'CPU nach ëmmer ze héich ass no der Optimisatioun, kann et sinn datt e puer PHP Scripte wild lafen.
Benotzt de folgende Kommando fir de PHP-Prozess mat der héchster CPU Benotzung erauszefannen:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Wann Dir fannt datt e PHP Skript ze vill CPU ophëlt, kënnt Dir et direkt ëmbréngen:
kill -9 PID
✅Resultat : Identifizéiert präzis "béis Äppel" a verhënnert datt PHP-Prozesser d'CPU fir eng länger Zäit besetzen.
Resumé: 7 Weeër fir PHP-FPM ze optimiséieren
✅ Limitéiert d'Zuel vu PHP-FPM Prozesser, fir CPU Iwwerlaascht ze verhënneren
✅ OPCache aktivéieren, reduzéieren widderholl Parsing vun PHP Code
✅ PHP Timeout setzen, fir laangfristeg Operatioun ze verhënneren
✅ Iwwerpréift MySQL lues Ufroen, optimiséiert Datebank Ufro Leeschtung
✅ Ajustéieren Memcached Erënnerung, CPU Belaaschtung reduzéieren
✅ Aktivéiert Nginx statesche Cache, reduzéieren d'PHP Parsing Belaaschtung
✅ Fannt PHP Scripte fir héich CPU Benotzung, präzis Optimisatioun
Ofschléissend
Serveroptimiséierung ass wéi Fitness, Dir musst präzis Upassunge maachen an net messen!
No enger Serie vun Optimisatiounen ass meng Server CPU Laascht erofgaang 80% erof op 15%, d'Websäit mécht duebel sou séier op!
Wann Äre Server ähnlech Problemer huet, probéiert dës Methoden! 💪
👉 Maacht elo eppes! Optimiséiert Är PHP-FPM a spuert Äre Server! 🚀
Hoffentlech ass den Artikel "HestiaCP php-fpm process consumes a lot of CPU resources, how to optimize it?", deen um Chen Weiliang sengem Blog ( https://www.chenweiliang.com/ ) gedeelt gouf, Iech hëllefräich.
Deelt gären de Link vun dësem Artikel: https://www.chenweiliang.com/cwl-32490.html
