I-HestiaCP PHP-FPM iphantsi komthwalo onzima? Iphepha lewebhu elinamandla 500 impazamo? Oku kulungiswa kuya kusebenza kwangoko!

Ngaba wakha wadibana nale meko?Ukufikelela kwiwebhusayithi ngokukhawuleza kwacotha, okanye kwakhokelela kwimpazamo ye-500 Emva kokuqalisa kwakhona i-PHP-FPM, ibuyele kwesiqhelo., kodwa ingxaki iphinda ivele emva kwethuba? Iyacaphukisa le nto!

Kutheni lento isenzeka?Enyanisweni, oku kuqhelekileI-PHP-FPM yenkqubo ye-pool ayibunjwanga ngokufanelekileyo, okanye imithombo yomncedisi ayonelanga.yenziwe ngu. Namhlanje, siza kwandisa ngokupheleleyo I-HestiaCP I-PHP-FPM phantsi kwe-hood yenza iwebhusayithi izinze njengelitye!

Esona sizathu singundoqo sokuba kutheni i-PHP-FPM igcwele kakhulu

PHP-FPM yiUmphathi Wenkqubo, enoxanduva lokusingatha izicelo eziguqukayo. Ukuba ubumbeko alunangqiqo, lunokukhokelela ku:

  • Izixhobo zeseva ziphelile, okubangela ukuba i-PHP-FPM ingakwazi ukuphendula kwizicelo ezitsha ngexesha elifanelekileyo;
  • Iinkqubo ezimbalwa kakhulu, xa i-traffic inyuka ngokukhawuleza, ayikwazi ukuqhutyelwa phambili ngexesha;
  • Ukusetyenziswa kwenkqubo kuphezulu kakhulu, ebangela ukuba umthwalo we-CPU uqhume.

I-HestiaCP PHP-FPM iphantsi komthwalo onzima? Iphepha lewebhu elinamandla 500 impazamo? Oku kulungiswa kuya kusebenza kwangoko!

Uxela njani ukuba i-PHP-FPM igcwele kakhulu?

Ungasebenzisa top Okanye htop Umyalelo wokujonga i-CPU kunye nokusetyenziswa kwememori:

top -c

Ukuba ubona ulwazi lwenkqubo efana nokulandelayo, oko kuthetha ukuba i-PHP-FPM isebenza phantsi komthwalo ophezulu:

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

Jonga ukuba ezi nkqubo zithatha njani ngaphezulu kwe-70% ye-CPU? Ukuba oku kuyenzeka rhoqo, i-PHP-FPM yakho Kufuneka kubekho ingxaki

Ke, singayenza njani i-PHP-FPM uqwalaselo ukuze umncedisi angabe esagcwala?

PHP-FPM inkqubo pool optimization (uhlengahlengiso iparameter engundoqo)

Okokuqala, vula php-fpm Iifayile zoqwalaselo:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Tshintshela kwinguqulelo yakho ye-PHP, efana ne-PHP8.3, kwaye uyitshintshele kule:/etc/php/8.3/fpm/pool.d/www.conf

Buza inguqulo ye-PHP esetwe nguHestiaCP

v-list-web-domain user domain.com

Isb:

v-list-web-domain abc chenweiliang.com

Kwimveliso, uya kubona into efana nale:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Oku kuthetha ukuba iwebhusayithi isebenzisa PHP 8.3,

Makhe sijonge kuqwalaselo lwakho lwe-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

Uyabona ke wena pm Lowo usetyenziswayo ngu ondemand,Nangona inokunciphisa ukusetyenziswa kwezixhobo ngexesha lokungasebenzi, xa i-traffic inyuka ngokukhawuleza, inkqubo ayinakukwazi ukuphendula ngexesha., okukhokelela kwimpazamo engama-500.

1. Lungisa iparameters zenkqubo ye-PHP-FPM

Ukuba uqwalaselo lusebenzisa dynamicLe yindlela yokuqalisa kwangaphambili ezinye iinkqubo zomsebenzi kunye nokulungelelanisa ngokuguquguqukayo ngokomthamo wesicelo, onokuphendula ngokukhawuleza xa umthamo wesicelo usanda ngokukhawuleza.

Kwiiwebhusayithi ezinomlinganiselo othile wetrafikhi, kuyacetyiswa ukuba usebenzise pm = dynamicNgenxa yokuba inokugcina inani elithile leenkqubo ezingasebenziyo kwaye igweme iimpazamo ze-500 ngexesha le-concurrency ephezulu.

Kucetyiswa ukuba uyisebenzise kuphela xa umthamo wofikelelo uphantsi kakhulu kwaye izixhobo zememori ziqinile. pm = ondemand Ukugcina izixhobo.

Cebisa ukuba utshintshele ku ondemand, kunye nokwandisa pm.max_children kunye nezinye iiparameters:

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 后自动退出

Kutheni ufuna ukuyitshintsha ngolu hlobo?

  • pm = dynamic: Nikeza iinkqubo ngokulula ngakumbi ukuphepha ukulinda okunokuthi kubangwe kukufuna;
  • pm.max_children = 16: Thintela iimpazamo ezingama-500 ezibangelwa ziinkqubo ezimbalwa kakhulu;
  • pm.start_servers = 5: Kuphephe ukuqalisa inkqubo ecothayo;
  • pm.max_requests = 3000:Ukuthintela ukuvuza kwememori, recycle inkqubo rhoqo.

2. Ukunciphisa ixesha lokwenziwa kwemibhalo ye-PHP ukuthintela ukuhlala ixesha elide

request_terminate_timeout = 30s  ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M  ; 限制 PHP 进程最大内存占用

Oku kunokuthintela abanyeIzikripthi ze-PHP ezisebenzisa kakhulu i-CPU zinokuhlisa iseva yakho,

Emva kokugcina, qalisa kwakhona inkqubo ye-PHP:

sudo systemctl restart php8.3-fpm

Yenza imo esweni ye-PHP-FPM ukugcina umkhondo wenkqubela phambili nangaliphi na ixesha

Yenza inkqubo yohlolo lwe-PHP-FPM kwaye uyijonge nangaliphi na ixeshaInani langoku leenkqubo ezisebenzayo kunye nesicelo sokulinda isimo, ukunqanda ukugcwala kweseva.

In php-fpm.conf Ifakwe kwi:

pm.status_path = /status

Emva koko, uqwalaselo lweNginx:

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;
}

Ngale ndlela, unako http://yourdomain.com/status Jonga i-PHP-FPM isebenza!

Lungiselela iilog ze-PHP-FPM ukulungisa iingxaki ngokukhawuleza

In php-fpm.conf Faka kwi:

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 的脚本记录到日志

Ngale ndlela, nanini na impazamo ye-500 isenzeka, unokujonga ngqo ilog:

tail -f /var/log/php-fpm/error.log

Jonga ukuba PHP ingxelo impazamo, ezifana out of memory,script execution timeout Yima.

Qala kwakhona i-PHP-FPM rhoqo ukukhusela ukuvuza kwememori

ndiyakwazi ukudlula cron Qala kwakhona i-PHP-FPM rhoqo ukukhusela iinkqubo ezithatha ixesha elide ekubangeleniUkuvuza kweenkumbulo,

crontab -e

Yongeza lo msebenzi ulandelayo ucwangcisiweyo ukuze uqalise ngokuzenzekelayo i-PHP-FPM ngo-3 am yonke imihla:

0 3 * * * /usr/sbin/service php8.3-fpm restart

Kuthekani ukuba le ngxaki iyaqhubeka? Ukwandisa ngakumbi!

Ukuba usalandela ulungiselelo olungentlaNgamanye amaxesha kwenzeka iimpazamo ezingama-500, ungaqhubeleka nolu lulandelayo:

1. Yenza i-OPcache iphucule ukusebenza kakuhle kwe-PHP

Ukuba i-OPcache ayikasetyenziswa, ungayifaka ngolu hlobo (usebenzisa Ubuntu njengomzekelo):

sudo apt install php8.3-opcache -y

Emva koko uhlele php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1

Isiphumo? Isantya sokwenziwa kwephepha le-PHP siphuculwe kakhulu!

2. Ukulungiswa koqwalaselo lweNginx

Qinisekisa ukuba iiparamitha ezinxulumene neNginx zifanelekile, njenge fastcgi_read_timeout Yihlengahlengise ngokufanelekileyo ukunqanda ukuba izikripthi ze-PHP zipheliswe yi-Nginx ngenxa yexesha elide lokuphumeza:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Isishwankathelo: Lungiselela i-PHP-FPM kwaye iwebhusayithi ayisayi kuphinda iqhubeleke!

Luluphi uhlengahlengiso esilwenzileyo emva kolu lungiselelo?

✅ Ukuphucula inkqubo ye-PHP-FPM,usebenzisa ondemandKwaye wandise pm.max_children ipharamitha;
Ukunciphisa ixesha lokwenziwa kwemibhalo ye-PHP, ukuthintela umsebenzi weCPU wexesha elide;
Yenza uqwalaselo lwe-PHP-FPM lusebenze, jonga inkqubo yokulayisha ngexesha lokwenyani;
Ukuphucula iilog ze-PHP-FPM, ngokukhawuleza ukulungisa iimpazamo ezingama-500;
Qala kwakhona i-PHP-FPM rhoqo, ukuthintela ukuvuza kwememori;
Vula i-OPcache, ukuphucula ukusebenza kakuhle kwe-PHP;
Ukuphucula ubumbeko lweNginx, ukunqanda imiba yexesha.

Emva kolu lungiselelo, umthwalo we-PHP-FPM uya kuncitshiswa kakhulu kwaye ukusebenza kwewebhusayithi kuya kuzinza ngakumbi! 🔥

Hamba uyizame ngoku! 💪🚀

Shiya uluvo

Idilesi yakho ye-imeyile ayizupapashwa. Iinkalo ezifunekayo zisetyenzisiwe * Ileyibheli

Skrolela phezulu