Artikel Directory
HestiaCP- tsjinner CPU-pieken? In folsleine hantlieding foar PHP-FPM-prosesoptimalisaasje!

Is de CPU fan jo server konstant op 100%? Draaie de fans as gek? Laadt jo webside stadich? De skuldige kin php-fpm wêze!
Ik koartlyn ûntdutsen chenweiliang.com Dit PHP pool php-fpm It proses fret de CPU as in gek op, en de server crashte!
Om de server nij libben yn te blazen, haw ik in searje optimalisaasjemetoaden besocht en úteinlik slagge it my om it CPU-gebrûk te ferminderjen.
No, lit ús dizze effisjinte optimalisaasjegids diele ! 🚀
1. Beheine it oantal php-fpm-prosessen
De standertynstellingen foar php-fpm kinne in ûnbeheind oantal prosessen oanmeitsje, wêrtroch't de CPU-oerlêst fan 'e server ûntstiet.
Om it te optimalisearjen, kinne wy de parameters foar prosesbehear oanpasse.
Trochbraak php-fpm Konfiguraasjetriemmen:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Wikselje nei jo PHP-ferzje, lykas PHP8.3, en feroarje it nei dit:
/etc/php/8.3/fpm/pool.d/www.conf
Freegje de PHP-ferzje op dy't ynsteld is troch HestiaCP
v-list-web-domain user domain.com
E.g:
v-list-web-domain abc chenweiliang.com
Yn 'e útfier sille jo wat sjen as:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Dit jout oan dat de webside PHP 8.3 brûkt.
Sykje en wizigje de folgjende 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 后自动退出
Dan reboot php-fpm Om it effektyf te meitsjen:
sudo systemctl restart php-fpm
✅Effekt : Beheint it oantal prosessen om te foarkommen dat php-fpm tefolle CPU-boarnen ferbrûkt.
2. OPCache ynskeakelje (om PHP-prestaasjes te ferbetterjen)
PHP reparearret de koade elke kear as it wurdt útfierd, wat in fergriemerij fan boarnen is.
De oplossing? Aktivearje OPCache en cache jo PHP-koade!
bewurkje php.ini dokumint:
sudo nano /etc/php/*/fpm/php.ini
Foegje of wizigje it folgjende:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Nei it bewarjen, start it PHP-proses opnij:
sudo systemctl restart php8.3-fpm
✅Effekt : Ferminderet repetitive parsing fan PHP-koade, ferminderet CPU-belesting en ferbetteret útfieringseffisjinsje.
3. Beheine de maksimale útfieringstiid fan PHP-skripts
As in PHP-skript te lang rint, wurde CPU-boarnen kontinu beset.
It ynstellen fan in ridlike time-outperioade kin foarkomme dat "koppige" prosessen de tsjinner foar in lange tiid besette.
Trochbraak php.ini dokumint:
sudo nano /etc/php/*/fpm/php.ini
Feroarje de folgjende parameters:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Start dan it PHP-proses opnij:
sudo systemctl restart php-fpm
✅Effekt : Foarkomt dat PHP-prosessen foar langere perioaden rinne, wêrtroch't CPU-boarnen fergriemd wurde.
4. Kontrolearje MySQL Stadige fraach
PHP-FPM hat in hege lading,It kin wurde feroarsake troch de trage SQL-query!
Oandwaan MySQL Slow query log, fyn út de SQL-útspraken dy't tsjinhâlde.
Bewurkje it MySQL-konfiguraasjetriem:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Taheakje oan:
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1 # 超过 1 秒的查询会被记录
Nei it bewarjen, start MySQL opnij:
sudo systemctl restart mysql
Brûk dan mysqldumpslow Analyse fan trage queries:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅Resultaat : Identifisearje tiidslinende SQL-fragen, optimalisearje databaseprestaasjes en ferminderje yndirekt de PHP-lading.
5. Beperkingen memcached Resource gebrûk
As ik nei de proseslist seach, fûn ik Memcached proses CPU-gebrûk is 24.8%!
It kin wêze dat de cache-allokaasje te grut is, wêrtroch't de CPU in grutte hoemannichte gegevens ferwurket.
Oanpassing memcached Konfiguraasje:
sudo nano /etc/memcached.conf
Feroarje:
-m 32 # 限制 Memcached 内存使用 32MB
Dan reboot:
sudo systemctl restart memcached
✅Effekt : Ferminderet de CPU-belesting op it Memcached-proses en ferbetteret de caching-effisjinsje.
6. Aktivearje Nginx om statyske boarnen te cache
In protte kearen ferwurket PHP oanfragen dy't in grut oantal befetsje CSS, JS, ôfbyldings, mar dizze triemmen hoege gjin PHP-parsing hielendal!
De oplossing? Brûk Nginx om statyske boarnen te cache!
Nginx-konfiguraasje bewurkje:
sudo nano /etc/nginx/nginx.conf
Taheakje oan:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Nei it bewarjen, starte Nginx opnij:
sudo systemctl restart nginx
✅Effekt : Ferminderet it oantal kearen dat PHP statyske bestannen ferwurket, wêrtroch it CPU-gebrûk ferlege wurdt.
7. Fyn it PHP-skript dat de measte CPU brûkt
As de CPU nei optimalisaasje noch te heech is, kin it wêze dat guon PHP-skripts wyld rinne.
Brûk it folgjende kommando om it PHP-proses te finen mei it heechste CPU-gebrûk:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
As jo fine dat in PHP-skript tefolle CPU opnimt, kinne jo it direkt deadzje:
kill -9 PID
✅Resultaat : Identifisearret sekuer "minne appels" en foarkomt dat PHP-prosessen de CPU foar langere perioaden yn beslach nimme.
Gearfetting: 7 manieren om PHP-FPM te optimalisearjen
✅ Beheine it oantal PHP-FPM-prosessen, om CPU-overload te foarkommen
✅ OPCache ynskeakelje, ferminderje werhelle parsing fan PHP-koade
✅ PHP timeout ynstelle, om lange termyn operaasje te foarkommen
✅ Kontrolearje MySQL trage queries, optimisearje de prestaasjes fan databankfragen
✅ Oanpasse Memcached Unthâld, ferminderjen CPU lêst
✅ Nginx statyske cache ynskeakelje, it ferminderjen fan de PHP-parsearlêst
✅ Fyn PHP-skripts mei hege CPU-gebrûk, presys optimalisaasje
yn konklúzje
Serveroptimalisaasje is as fitness, jo moatte krekte oanpassingen meitsje en net rommelje!
Nei in rige fan optimizations, myn server CPU load is sakke fan 80% nei 15%, de webside iepenet twa kear sa fluch!
As jo tsjinner ferlykbere problemen hat, besykje dizze metoaden! 💪
👉Nim no aksje! Optimalisearje jo PHP-FPM en rêd jo server! 🚀
Hopelik sil it artikel "HestiaCP php-fpm-proses brûkt in soad CPU-boarnen, hoe kin ik it optimalisearje?" dield op ' e blog fan Chen Weiliang ( https://www.chenweiliang.com/ ) jo nuttich wêze.
Fiel jo frij om de keppeling fan dit artikel te dielen: https://www.chenweiliang.com/cwl-32490.html
