Artikulu direktorioa
- 1 PHP-FPM gainkargatuta egotearen arrazoi nagusia
- 2 PHP-FPM prozesu multzoen optimizazioa (parametro nagusien doikuntza)
- 3 Gaitu PHP-FPM egoeraren jarraipena edozein unetan aurrerapenaren jarraipena egiteko
- 4 Optimizatu PHP-FPM erregistroak arazoak azkar konpontzeko
- 5 Berrabiarazi PHP-FPM aldizka memoria ihesak saihesteko
- 6 Zer gertatzen da arazoak jarraitzen badu? Optimizazio gehiago!
- 7 Laburpena: optimizatu PHP-FPM eta webgunea ez da huts egingo!
Egoera honekin topo egin al duzu inoiz?Webgunearen sarbidea bat-batean moteldu egin zen, edo 500 errore bat ere eragin zuen PHP-FPM berrabiarazi ondoren, normaltasunera itzuli zen., baina arazoa pixka bat igaro ondoren berriro agertzen da? Hau oso frustragarria da!
Zergatik gertatzen da hori?Izan ere, hau izaten daPHP-FPM prozesu multzoa ez dago behar bezala konfiguratuta, edo zerbitzariaren baliabideak ez dira nahikoak.eragindakoa. Gaur, ondo optimizatuko dugu HestiaCP Kanpaiaren azpian PHP-FPM webgunea arroka bezain egonkorra egiten du!
PHP-FPM gainkargatuta egotearen arrazoi nagusia
PHP-FPM bat daProzesu-kudeatzailea, eskaera dinamikoak kudeatzeaz arduratzen dena. Konfigurazioa arrazoizkoa ez bada, honako hauek sor ditzake:
- Zerbitzariaren baliabideak agortuta daude, PHP-FPM-k eskaera berriei garaiz erantzun ezin izatea eraginez;
- Prozesu gutxiegi, trafikoa bat-batean handitzen denean, ezin da garaiz prozesatu;
- Prozesuaren erabilera altuegia da, CPU karga lehertzea eraginez.
Nola esan PHP-FPM gainkargatuta dagoen?
erabil dezake top
edo htop
PUZaren eta memoriaren erabilera ikusteko komandoa:
top -c
Prozesuaren informazioa hurrengoaren antzekoa ikusten baduzu, PHP-FPM karga handian exekutatzen ari dela esan nahi du:
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
Ikusi nola prozesu hauek CPUaren % 70 baino gehiago hartzen ari diren? Hau askotan gertatzen bada, zure PHP-FPM Arazoren bat egon behar da!
Beraz, nola optimizatu dezakegu PHP-FPM konfigurazioa zerbitzaria gainkargatu ez dadin?
PHP-FPM prozesu multzoen optimizazioa (parametro nagusien doikuntza)
Lehenik eta behin, ikus dezagun zure PHP-FPM konfigurazioa:
[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
Ikus dezakezu zure pm
Erabilitakoa da ondemand
,Inaktibo-denboran baliabideen erabilera murriztu dezakeen arren, trafikoa bat-batean handitzen denean, baliteke prozesuak ezingo duela garaiz erantzun., 500 errorea eraginez.
1. Doitu PHP-FPM prozesu-multzoaren parametroak
Konfigurazioak erabiltzen badu dynamic
Langile-prozesuak eskariaren arabera hasteko modu bat da hau, baina baliteke eskaeren kopurua bat-batean handitzen denean behar adina prozesu esleitu ezin izatea denboran.
- Hona aldatzea iradokitzen da
pm = ondemand
, eta dagozkion parametroak egokitu; - agertu
php-fpm.conf
, Berrikusipm = dynamic
为pm = ondemand
, PHP prozesua behar denean bakarrik abiarazi dadin, CPU baliabideak alferrik galdu gabe! 🚀
Hona aldatzea iradokitzen da ondemand
, eta optimizatu pm.max_children
Eta beste parametro batzuk:
pm = ondemand
pm.max_children = 20 ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 5 ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2 ; 最小空闲进程数
pm.max_spare_servers = 7 ; 最大空闲进程数
pm.max_requests = 3000 ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s ; 空闲进程 10s 后自动退出
Zergatik aldatu nahi duzu horrela?
pm = dynamic
: Esleitu prozesuak malgutasun handiagoz, eskariak eragin ditzakeen eskaera-itxarotea ekiditeko;pm.max_children = 20
: Prozesu gutxiegiek eragindako 500 akats saihestu;pm.start_servers = 5
: Saihestu prozesua abiarazte motela;pm.max_requests = 3000
:Memoria ihesak saihestea, birziklatu prozesua aldizka.
2. Mugatu PHP scripten exekuzio-denbora epe luzerako okupazioa saihesteko
request_terminate_timeout = 30s ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M ; 限制 PHP 进程最大内存占用
Horrek batzuk eragotzi ditzakeCPU gehiegi erabiltzen duten PHP scriptek zure zerbitzaria jaitsi dezakete.
Gaitu PHP-FPM egoeraren jarraipena edozein unetan aurrerapenaren jarraipena egiteko
Gaitu PHP-FPM prozesuen jarraipena eta ikusi edonoizUneko prozesu aktiboen kopurua eta eskaeraren itxaron egoera, zerbitzariaren gainkarga saihesteko.
在 php-fpm.conf
Gehituta:
pm.status_path = /status
Ondoren, Nginx konfigurazioa:
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;
}
Modu honetan, ahal izango duzu http://yourdomain.com/status
Begiratu PHP-FPM ekintzan!
Optimizatu PHP-FPM erregistroak arazoak azkar konpontzeko
在 php-fpm.conf
Gehitu:
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 的脚本记录到日志
Modu honetan, 500 errore bat gertatzen den bakoitzean, erregistroa zuzenean ikus dezakezu:
tail -f /var/log/php-fpm/error.log
Ikusi PHP-k erroreren bat ematen duen, adibidez out of memory
,script execution timeout
等.
Berrabiarazi PHP-FPM aldizka memoria ihesak saihesteko
pasatzeko gai cron
Berrabiarazi PHP-FPM aldizka, exekuzio luzeko prozesuek eragin ez dezatenMemoria ihesak.
crontab -e
Gehitu programatutako zeregin hau egunero PHP-FPM automatikoki berrabiarazteko:
0 3 * * * /usr/sbin/service php8.3-fpm restart
Zer gertatzen da arazoak jarraitzen badu? Optimizazio gehiago!
Oraindik goiko optimizazioa jarraitzen baduzuBatzuetan 500 akats gertatzen dira, optimizazio hauekin jarraitu dezakezu:
1. Gaitu OPcache PHP exekuzioaren eraginkortasuna hobetzeko
OPcache oraindik gaituta ez badago, honela instala dezakezu (Ubuntu adibide gisa erabiliz):
sudo apt install php8.3-opcache -y
Ondoren, editatu php.ini
:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1
Eragina? PHP orrien exekuzio abiadura asko hobetu da!
2. Nginx konfigurazio optimizazioa
Ziurtatu Nginx erlazionatutako parametroak arrazoizkoak direla, adibidez fastcgi_read_timeout
Doitu behar bezala Nginx-ek PHP script-ak exekuzio-denbora luzearen ondorioz amaitzea saihesteko:
fastcgi_read_timeout 60s;
client_max_body_size 100M;
Laburpena: optimizatu PHP-FPM eta webgunea ez da huts egingo!
Zer doikuntza egin ditugu optimizazio honen ostean?
✅ PHP-FPM prozesu multzoa optimizatzea, erabili ondemand
Eta optimizatu pm.max_children
parametroa;
✅ PHP scripten exekuzio denbora mugatzea, epe luzerako CPU okupazioa saihesteko;
✅ Gaitu PHP-FPM monitorizazioa, ikusi prozesuaren karga denbora errealean;
✅ PHP-FPM erregistroak optimizatzea, konpondu azkar 500 errore;
✅ Berrabiarazi PHP-FPM aldizka, memoria ihesak saihestu;
✅ Gaitu OPcache, PHP exekuzioaren eraginkortasuna hobetu;
✅ Nginx konfigurazioa optimizatzea, denbora-muga arazoak ekiditeko.
Optimizazio honen ondoren, PHP-FPM karga asko murriztuko da eta webgunearen funtzionamendua egonkorragoa izango da! 🔥
Joan probatu orain! 💪🚀
Hope Chen Weiliang bloga ( https://www.chenweiliang.com/ ) partekatu du "HestiaCP PHP-FPM karga altuegia al da? Web orri dinamikoaren 500 errorea? Optimizazio hau berehala jarriko da indarrean! ”, lagungarria izan daiteke.
Ongi etorri artikulu honen esteka partekatzera:https://www.chenweiliang.com/cwl-32512.html
Desblokeatu AI laguntza eta esan agur lan eraginkorrari! 🔓💼
🔔 Lortu berehala "DeepSeek Prompt Word Artifact" kanalaren goiko direktorioan! 🎯
📚 Galdu ezazu = Atzean geratu betiko! Hartu neurriak orain! ⏳💨
Partekatu eta gustatu gustatzen bazaizu! Zure partekatzeak eta gustukoak dira gure etengabeko motibazioa!