HestiaCP PHP-FPM zama handian dago? Web orri dinamikoaren 500 errorea? Optimizazio hau berehala jarriko da indarrean!

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.

HestiaCP PHP-FPM zama handian dago? Web orri dinamikoaren 500 errorea? Optimizazio hau berehala jarriko da indarrean!

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 dynamicLangile-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, Berrikusi pm = dynamicpm = 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 ondemandEta 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!

 

发表 评论

Zure helbide elektronikoa ez da argitaratuko. 必填 项 已 用 * 标注

Igo korrituko