Articulu Directory
Picchi di CPU di u servitore HestiaCP ? Una guida cumpleta per l'ottimisazione di u prucessu PHP-FPM!

A CPU di u vostru servitore hè custantemente à 100%? I ventilatori giranu cum'è pazzi? U vostru situ web si carica pianu pianu? U culpevule puderia esse php-fpm!
Aghju scupertu pocu tempu chenweiliang.com Questa piscina PHP php-fpm U prucessu hà cunsumatu assai a CPU, è u servitore s'hè schiantatu!
Per rilancià u servitore, aghju pruvatu una seria di metudi d'ottimisazione è infine sò riesciutu à riduce l'usu di a CPU.
Avà, spartemu sta guida d'ottimisazione efficiente ! 🚀
1. Limità u numeru di prucessi php-fpm
I paràmetri predefiniti per php-fpm ponu creà un numeru illimitatu di prucessi, causendu un sovraccaricu di a CPU di u servitore.
Per ottimisà lu, pudemu mudificà i parametri di gestione di u prucessu.
accende php-fpm File di cunfigurazione:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Cambiate à a vostra versione di PHP, cum'è PHP8.3, è cambiatela à questu:
/etc/php/8.3/fpm/pool.d/www.conf
Interroga a versione PHP stabilita da HestiaCP
v-list-web-domain user domain.com
P.e.:
v-list-web-domain abc chenweiliang.com
In u output, vi vede qualcosa cum'è:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Questu indica chì u situ web usa PHP 8.3.
Locate è mudificà i seguenti parametri:
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 后自动退出
Allora reboot php-fpm Per rende efficace:
sudo systemctl restart php-fpm
✅Effettu : Limita u numeru di prucessi per impedisce à php-fpm di cunsumà eccessivamente risorse di CPU.
2. Habilita OPCache (per migliurà u rendiment PHP)
PHP ripara u codice ogni volta chì hè eseguitu, chì hè un perdu di risorse.
A suluzione ? Habilita OPCache è cache u vostru codice PHP!
编辑 php.ini schedariu:
sudo nano /etc/php/*/fpm/php.ini
Aghjunghjite o mudificà i seguenti:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Dopu avè salvatu, ripigliate u prucessu PHP:
sudo systemctl restart php8.3-fpm
✅Risultati : Riduce l'analisi ripetitiva di u codice PHP, riduce u caricu di a CPU è migliora l'efficienza di l'esecuzione.
3. Limità u tempu massimu di esecuzione di script PHP
Se un script PHP corre per troppu longu, i risorse di CPU seranu continuamente occupati.
Stabilisce un periodu di timeout raghjone pò impedisce à i prucessi "stubborn" di occupà u servitore per un bellu pezzu.
accende php.ini schedariu:
sudo nano /etc/php/*/fpm/php.ini
Mudificà i seguenti paràmetri:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Allora ripigliate u prucessu PHP:
sudo systemctl restart php-fpm
✅Effettu : Impedisce à i prucessi PHP di esse eseguiti per periodi estesi, riducendu u sprecu di risorse di a CPU.
4. Verificate MySQL Quistione lenta
PHP-FPM hà una carica alta,Pò esse causatu da a dumanda SQL lenta!
Accende MySQL Log di quistione lenta, scopre e dichjarazioni SQL chì si fermanu.
Edite u schedariu di cunfigurazione MySQL:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Aghjunghjite à:
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1 # 超过 1 秒的查询会被记录
Dopu avè salvatu, riavvia MySQL:
sudo systemctl restart mysql
Allora aduprate mysqldumpslow Analizà e dumande lente:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅Risultatu : Identificate e dumande SQL chì cunsumanu tempu, ottimisate e prestazioni di a basa di dati è riduce indirettamente u caricu PHP.
5. Restrizioni memcached L'usu di risorse
Fighjendu a lista di u prucessu, aghju trovu L'usu di CPU di u prucessu Memcached hè 24.8%!
Pò esse chì l'allocazione di cache hè troppu grande, facendu chì a CPU processa una grande quantità di dati.
Ajustamentu memcached Cunfigurazione:
sudo nano /etc/memcached.conf
Revisione:
-m 32 # 限制 Memcached 内存使用 32MB
Allora reboot:
sudo systemctl restart memcached
✅Effettu : Riduce u caricu di a CPU nant'à u prucessu Memcached è migliurà l'efficienza di a cache.
6. Habilita Nginx per cache risorse statiche
Parechje volte, PHP processa richieste chì cuntenenu un gran numaru di CSS, JS, imagine, ma questi schedari ùn anu micca bisognu di analisi PHP !
A suluzione ? Aduprate Nginx per cache risorse statiche!
Edite a cunfigurazione Nginx:
sudo nano /etc/nginx/nginx.conf
Aghjunghjite à:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Dopu avè salvatu, riavvia Nginx:
sudo systemctl restart nginx
✅Risultatu : Riduce u numeru di volte chì PHP processa i fugliali statichi, riducendu cusì l'usu di a CPU.
7. Truvate u script PHP chì usa più CPU
Se u CPU hè sempre troppu altu dopu l'ottimisazione, pò esse chì certi script PHP sò in esecuzione salvatica.
Aduprate u cumandimu seguitu per sapè u prucessu PHP cù u più altu usu di CPU:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Se truvate chì un script PHP occupa troppu CPU, pudete tumbà direttamente:
kill -9 PID
✅Risultatu : Identifica accuratamente e "mele marce" è impedisce à i prucessi PHP d'occupà a CPU per periodi estesi.
Riassuntu: 7 modi per ottimisà PHP-FPM
✅ Limite u numeru di prucessi PHP-FPM, per prevene u CPU overload
✅ Habilita OPCache, riduce l'analisi ripetuta di codice PHP
✅ Impostazione di u timeout PHP, per impedisce u funziunamentu à longu andà
✅ Verificate e dumande lente di MySQL, ottimisate u rendiment di e dumande di basa di dati
✅ Aghjustate a Memoria Memcached, riducendu a carica di CPU
✅ Abilita a cache statica Nginx, riducendu a carica di analisi PHP
✅ Truvate script PHP d'usu elevatu di CPU, ottimisazione precisa
in cunclusione
L'ottimisazione di u servitore hè cum'è fitness, avete bisognu di fà aghjustamenti precisi è ùn fate micca scherzi!
Dopu una seria di ottimisazioni, a mo carica di CPU di u servitore hè cascata 80% à 15%, u situ web apre duie volte più veloce !
Se u vostru servitore hà prublemi simili, pruvate questi metudi! 💪
👉Agite avà! Ottimisate u vostru PHP-FPM è salvate u vostru servitore! 🚀
Speremu chì l'articulu "U prucessu HestiaCP php-fpm cunsuma assai risorse di CPU, cumu ottimizallu?" spartutu nant'à u blog di Chen Weiliang ( https://www.chenweiliang.com/ ) vi serà utile.
Sentitevi liberi di sparte u ligame di questu articulu: https://www.chenweiliang.com/cwl-32490.html
