Articulu Directory
- 1 U mutivu core perchè PHP-FPM hè sovraccaricatu
- 2 Ottimisazione di u pool di processi PHP-FPM (aggiustamentu di i paràmetri core)
- 3 Habilita u monitoraghju di u statutu PHP-FPM per seguità u prugressu in ogni mumentu
- 4 Ottimisate i logs PHP-FPM per risolve rapidamente i prublemi
- 5 Restart PHP-FPM regularmente per prevene perdite di memoria
- 6 E se u prublema persiste? Ulteriore ottimisazione!
- 7 Riassuntu: Ottimisate PHP-FPM è u situ web ùn crasherà più!
Avete mai scontru sta situazione?L'accessu di u situ web rallintatu di colpu, o ancu risultatu in un errore 500 Dopu avè riavviatu PHP-FPM, hà tornatu à u normale., ma u prublema torna dopu à pocu tempu ? Questu hè cusì frustrante!
Perchè sta succorsu?In fatti, questu hè di solituU gruppu di processu PHP-FPM ùn hè micca cunfiguratu bè, o i risorse di u servitore sò insufficienti.causatu da. Oghje, avemu da ottimisà bè HestiaCP PHP-FPM sottu u cappucciu face u situ web stabile cum'è una roccia!
U mutivu core perchè PHP-FPM hè sovraccaricatu
PHP-FPM hè unManager di prucessu, chì hè rispunsevule per trattà e dumande dinamiche. Se a cunfigurazione ùn hè micca raghjone, pò purtà à:
- E risorse di u servitore sò esaurite, facennu chì PHP-FPM ùn sia incapace di risponde à e novi richieste in una manera puntuale;
- Troppu pochi prucessi, quandu u trafficu aumenta di colpu, ùn pò micca esse processatu in u tempu;
- L'usu di prucessu hè troppu altu, pruvucannu a carica di CPU per esplusioni.

Cumu sapè se PHP-FPM hè sovraccaricatu?
pò aduprà top O htop Cumanda per vede CPU è usu di memoria:
top -c
Se vede l'infurmazioni di prucessu simili à i seguenti, significa chì PHP-FPM hè in esecuzione sottu una carica alta:
1669293 abc 20 0 790284 227880 185568 R 73.1 0.9 1:30.09 php-fpm: pool chenweiliang.com
1669522 abc 20 0 801924 224224 170236 R 69.9 0.9 0:59.01 php-fpm: pool chenweiliang.com
Vede cumu questi prucessi piglianu più di 70% di u CPU? Se questu succede spessu, u vostru PHP-FPM Ci deve esse un prublema!
Allora, cumu pudemu ottimisà a cunfigurazione PHP-FPM per chì u servitore ùn hè più sopracargatu?
Ottimisazione di u pool di processi PHP-FPM (aggiustamentu di i paràmetri core)
Prima, apre 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 significa chì u situ usa PHP 8.3.
Demu un'ochjata à a vostra cunfigurazione PHP-FPM:
[chenweiliang.com]
listen = /run/php/php8.3-fpm-chenweiliang.com.sock
listen.owner = abc
listen.group = www-data
listen.mode = 0660
user = abc
group = abc
pm = ondemand
pm.max_children = 8
pm.max_requests = 4000
pm.process_idle_timeout = 10s
Pudete vede chì u vostru pm Quellu utilizatu hè ondemand,Ancu s'ellu pò riduce l'usu di risorse durante u tempu inattivu, quandu u trafficu aumenta di colpu, u prucessu ùn pò micca esse capace di risponde à u tempu., risultatu in un errore 500.
1. Adjust PHP-FPM process pool paràmetri
Se a cunfigurazione usa dynamicQuestu hè un metudu per pre-inizià certi prucessi di travagliu è aghjustà li dinamicamente secondu u vulume di richieste, chì pò risponde più rapidamente quandu u vulume di richieste aumenta di colpu.
Per i siti web cun una certa quantità di trafficu, hè cunsigliatu di utilizà pm = dynamicPerchè pò mantene una certa quantità di prucessi inattivi è evità 500 errori durante l'alta cuncurrenza.
Hè cunsigliatu di aduprà solu quandu u vulume d'accessu hè estremamente bassu è e risorse di memoria sò strette. pm = ondemand Per risparmià risorse.
Suggerutu à ondemand, è ottimisimu pm.max_children È altri 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 后自动退出
Perchè vo vulete cambià cusì?
pm = dynamic: Allocate i prucessi più flessibili per evità l'attesa di a dumanda chì pò esse causata da a dumanda;pm.max_children = 16: Impedisce 500 errori causati da troppu pochi prucessi;pm.start_servers = 5: Evite l'iniziu di prucessu lento;pm.max_requests = 3000:Prevenzione di fughe di memoria, riciclà u prucessu regularmente.
2. Limità u tempu d'esekzione di script PHP per impedisce l'occupazione à longu andà
request_terminate_timeout = 30s ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M ; 限制 PHP 进程最大内存占用
Questu pò impedisce alcuniI scripts PHP chì utilizanu troppu CPU ponu fallu u vostru servitore.
Dopu avè salvatu, ripigliate u prucessu PHP:
sudo systemctl restart php8.3-fpmHabilita u monitoraghju di u statutu PHP-FPM per seguità u prugressu in ogni mumentu
Habilita u monitoraghju di u prucessu PHP-FPM è vede lu in ogni mumentuU numeru attuale di prucessi attivi è u statu di attesa di dumanda, per evità a sovraccarica di u servitore.
in php-fpm.conf Aggiuntu in:
pm.status_path = /status
Allora, cunfigurazione Nginx:
location /status {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
allow 127.0.0.1;
deny all;
}
In questu modu, pudete http://yourdomain.com/status Scuprite PHP-FPM in azione!
Ottimisate i logs PHP-FPM per risolve rapidamente i prublemi
in php-fpm.conf Aghjunghjite à:
php_admin_value[error_log] = /var/log/php-fpm/error.log
php_admin_value[log_errors] = On
php_admin_value[error_reporting] = E_ALL
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s ; 执行超过 5s 的脚本记录到日志
In questu modu, ogni volta chì si trova un errore 500, pudete vede direttamente u logu:
tail -f /var/log/php-fpm/error.log
Vede se PHP riporta un errore, cum'è out of memory,script execution timeout Aspetta.
Restart PHP-FPM regularmente per prevene perdite di memoria
capace di passà cron Restart PHP-FPM regularmente per prevene i prucessi di longa durataPerdite di memoria.
crontab -e
Aghjunghjite a seguente attività pianificata per riavvia automaticamente PHP-FPM à 3 am ogni ghjornu:
0 3 * * * /usr/sbin/service php8.3-fpm restart
E se u prublema persiste? Ulteriore ottimisazione!
Sè sempre seguitate l'optimizazione sopraIn ocasu 500 errori si trovanu, pudete cuntinuà cù e seguenti ottimisazioni:
1. Habilita OPcache per migliurà l'efficienza di l'esekzione PHP
Se OPcache ùn hè ancu attivatu, pudete installà cusì (usendu Ubuntu cum'è un esempiu):
sudo apt install php8.3-opcache -y
Allora edità php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1
Effettu ? A velocità di esecuzione di a pagina PHP hè stata assai migliurata!
2. Ottimisazione di cunfigurazione Nginx
Assicuratevi chì i paràmetri ligati à Nginx sò ragiunate, cum'è fastcgi_read_timeout Aghjustate bè per evità chì i script PHP sò terminati da Nginx per via di un longu tempu di esecuzione:
fastcgi_read_timeout 60s;
client_max_body_size 100M;
Riassuntu: Ottimisate PHP-FPM è u situ web ùn crasherà più!
Chì aghjustamenti avemu fattu dopu sta ottimisazione?
✅ Ottimisazione di u gruppu di prucessu PHP-FPM, usu ondemandÈ ottimisimu pm.max_children paràmetru;
✅ Limitazione di u tempu d'esekzione di script PHP, per prevene l'occupazione CPU à longu andà;
✅ Habilita u monitoraghju PHP-FPM, vede u prucessu di carica in tempu reale;
✅ Ottimisazione di logs PHP-FPM, risolve rapidamente 500 errori;
✅ Riavvia PHP-FPM regularmente, impediscenu perdite di memoria;
✅ Habilita OPcache, migliurà l'efficienza di esecutivu PHP;
✅ Optimizing Nginx Configuration, per evità prublemi di timeout.
Dopu sta ottimisazione, a carica PHP-FPM serà ridutta assai è l'operazione di u situ web serà più stabile! 🔥
Andate à pruvà avà! 💪🚀
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) hà spartutu "A carica di HestiaCP PHP-FPM hè troppu alta? Errore di pagina web dinamica 500? Questa ottimisazione entrerà in vigore immediatamente! ", pò esse utile per voi.
Benvenuti à sparte u ligame di stu articulu:https://www.chenweiliang.com/cwl-32512.html
Per sbloccare più trucchi nascosti🔑, benvenuti à unisce à u nostru canale Telegram!
Condividi e mi piace se ti piace! I vostri sparte è Mi piace sò a nostra motivazione cuntinua!