I-HestiaCP PHP-FPM ingaphansi komthwalo osindayo? Iphutha lewebhu le-Dynamic 500? Lokhu kulungiselelwa kuzoqala ukusebenza ngokushesha!

Wake wabhekana nalesi simo?Ukufinyelela kwewebhusayithi kwehle ngokuzumayo, noma kwaze kwaholela ephutheni le-500 Ngemva kokuqalisa kabusha i-PHP-FPM, ibuyele kokujwayelekile., kodwa inkinga iphinde ivele ngemva kwesikhashana? Kuyakhungathekisa kakhulu lokhu!

Kungani lokhu kwenzeka?Eqinisweni, lokhu ngokuvamileIchibi lenqubo ye-PHP-FPM ayilungiswanga kahle, noma izinsiza zeseva azanele.okubangelwa. Namuhla, sizothuthukisa ngokuphelele I-HestiaCP I-PHP-FPM efakiwe yenza iwebhusayithi izinze njengetshe!

Isizathu esiyinhloko sokuthi kungani i-PHP-FPM igcwele ngokweqile

I-PHP-FPM iyi-aUmphathi Wenqubo, enesibopho sokusingatha izicelo eziguqukayo. Uma ukucushwa kungenangqondo, kungaholela kokuthi:

  • Izinsiza zeseva ziphelile, okubangela ukuthi i-PHP-FPM ingakwazi ukuphendula izicelo ezintsha ngesikhathi;
  • Izinqubo ezimbalwa kakhulu, lapho ithrafikhi inyuka ngokuzumayo, ayikwazi ukucutshungulwa ngesikhathi;
  • Ukusetshenziswa kwenqubo kuphezulu kakhulu, okwenza umthwalo we-CPU uqhume.

I-HestiaCP PHP-FPM ingaphansi komthwalo osindayo? Iphutha lewebhu le-Dynamic 500? Lokhu kulungiselelwa kuzoqala ukusebenza ngokushesha!

Ungasho kanjani ukuthi i-PHP-FPM igcwele kakhulu?

angasebenzisa top Noma htop Umyalo wokubuka i-CPU nokusetshenziswa kwememori:

top -c

Uma ubona imininingwane yenqubo efana nokulandelayo, kusho ukuthi i-PHP-FPM isebenza ngaphansi komthwalo omkhulu:

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

Bona ukuthi lezi zinqubo zithatha kanjani ngaphezu kuka-70% we-CPU? Uma lokhu kwenzeka kaningi, i-PHP-FPM yakho Kumele kube nenkinga!

Ngakho-ke, singakuthuthukisa kanjani ukucushwa kwe-PHP-FPM ukuze iseva ingasalayishiwe?

Inqubo ye-PHP-FPM ye-pool optimization (ukulungiswa kwepharamitha okuyisisekelo)

Okokuqala, vula php-fpm Amafayela Okulungiselela:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Shintshela enguqulweni yakho ye-PHP, njenge-PHP8.3, futhi uyiguqule ibe yilena:/etc/php/8.3/fpm/pool.d/www.conf

Buza inguqulo ye-PHP esethwe yi-HestiaCP

v-list-web-domain user domain.com

I-E.g:

v-list-web-domain abc chenweiliang.com

Kokukhiphayo, uzobona okufana nalokhu:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Lokhu kusho ukuthi iwebhusayithi isebenzisa I-PHP 8.3,

Ake sibheke ukucushwa kwakho kwe-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

Uyakubona lokho pm Osetshenziswayo ngu ondemand,Nakuba inganciphisa ukusetshenziswa kwensiza ngesikhathi sokungenzi lutho, lapho ithrafikhi inyuka ngokuzumayo, inqubo ingase ingakwazi ukuphendula ngesikhathi., okuholela emaphutheni angu-500.

1. Lungisa amapharamitha echibi lenqubo ye-PHP-FPM

Uma ukucushwa kusebenzisa dynamicLena indlela yokuqala izinqubo ezithile zomsebenzi futhi uzilungise ngokuguquguqukayo ngokuya ngevolumu yesicelo, engaphendula ngokushesha lapho ivolumu yesicelo ikhuphuka ngokuzumayo.

Kumawebhusayithi anenani elithile lethrafikhi, kuyanconywa ukuthi asetshenziswe pm = dynamicNgoba ingagcina inani elithile lezinqubo ezingenzi lutho futhi igweme amaphutha angama-500 ngesikhathi sokuvumelana okuphezulu.

Kunconywa ukuthi uyisebenzise kuphela uma ivolumu yokufinyelela iphansi kakhulu futhi izinsiza zememori ziqinile. pm = ondemand Ukonga izinsiza.

Kuphakanyiswe ukuthi ondemand, futhi ulungiselele pm.max_children Namanye amapharamitha:

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

Kungani ufuna ukuyishintsha kanje?

  • pm = dynamic: Nikeza izinqubo ngendlela evumelana nezimo ukuze ugweme ukulinda okungase kubangelwe ukufunwa;
  • pm.max_children = 16: Vimbela amaphutha angu-500 abangelwa izinqubo ezimbalwa kakhulu;
  • pm.start_servers = 5: Gwema ukuqalisa inqubo enensa;
  • pm.max_requests = 3000:Ukuvimbela ukuvuza kwenkumbulo, sebenzisa kabusha inqubo njalo.

2. Khawulela isikhathi sokwenziwa kwemibhalo ye-PHP ukuze uvimbele ukuhlala isikhathi eside

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

Lokhu kungavimbela abanyeIzikripthi ze-PHP ezisebenzisa i-CPU eningi zingehlisa iseva yakho,

Ngemva kokulondoloza, qala kabusha inqubo ye-PHP:

sudo systemctl restart php8.3-fpm

Nika amandla ukuqapha isimo se-PHP-FPM ukuze ulandelele ukuqhubeka noma kunini

Nika amandla ukuqapha kwenqubo ye-PHP-FPM futhi uyibuke noma kuniniInombolo yamanje yezinqubo ezisebenzayo kanye nokucela isimo sokulinda, ukugwema ukugcwala kweseva.

KW php-fpm.conf Kwengezwe ku:

pm.status_path = /status

Bese, ukucushwa kwe-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;
}

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

Lungiselela amalogi we-PHP-FPM ukuze uxazulule izinkinga ngokushesha

KW php-fpm.conf Engeza ku:

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, noma nini lapho kwenzeka iphutha le-500, ungabuka ngokuqondile ilogi:

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

Bona ukuthi i-PHP ibika iphutha, njenge out of memory,script execution timeout Linda.

Qala kabusha i-PHP-FPM njalo ukuze uvimbele ukuvuza kwememori

ukwazi ukudlula cron Qala kabusha i-PHP-FPM njalo ukuze uvimbele izinqubo ezisebenza isikhathi eside ukuthi zingabangeliUkuvuza Kwenkumbulo,

crontab -e

Engeza umsebenzi ohleliwe olandelayo ukuze uqale kabusha ngokuzenzakalelayo i-PHP-FPM ngo-3 ekuseni nsuku zonke:

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

Kuthiwani uma inkinga iqhubeka? Ukwenza ngcono okwengeziwe!

Uma usalandela ukulungiselelwa okungenhlaNgezinye izikhathi kwenzeka amaphutha angu-500, ungaqhubeka nokulungiselelwa okulandelayo:

1. Nika amandla i-OPcache ukuze uthuthukise ukusebenza kahle kwe-PHP

Uma i-OPcache ingakanikwa amandla okwamanje, ungayifaka kanje (usebenzisa Ubuntu njengesibonelo):

sudo apt install php8.3-opcache -y

bese uhlela php.ini:

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

Umthelela? Isivinini sokwenza ikhasi le-PHP sithuthukiswe kakhulu!

2. Ukulungiswa kwe-Nginx

Qinisekisa ukuthi amapharamitha ahlobene ne-Nginx anengqondo, njenge fastcgi_read_timeout Yilungise ngendlela efanele ukuze ugweme ukuthi imibhalo ye-PHP iqedwe yi-Nginx ngenxa yesikhathi eside sokwenza:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Isifinyezo: Lungiselela i-PHP-FPM futhi iwebhusayithi ngeke isaphahlazeka!

Yiziphi izinguquko esizenzile ngemva kwalokhu kulungiselelwa?

✅ Ukulungiselela iphuli yenqubo ye-PHP-FPM,sebenzisa ondemandFuthi uthuthukise pm.max_children ipharamitha;
Ikhawulela isikhathi sokwenziwa kwezikripthi ze-PHP, ukuvimbela umsebenzi we-CPU wesikhathi eside;
Nika amandla ukuqapha kwe-PHP-FPM, buka umthwalo wenqubo ngesikhathi sangempela;
Ukulungiselela izingodo ze-PHP-FPM, xazulula ngokushesha amaphutha angama-500;
Qala kabusha i-PHP-FPM njalo, vimbela ukuvuza kwenkumbulo;
Nika amandla i-OPcache, thuthukisa ukusebenza kahle kwe-PHP;
Ilungiselela Ukucushwa kwe-Nginx, ukugwema izinkinga zokuvala isikhathi.

Ngemuva kwalokhu kulungiselelwa, umthwalo we-PHP-FPM uzoncishiswa kakhulu futhi ukusebenza kwewebhusayithi kuzozinza kakhulu! 🔥

Hamba uyizame manje! 💪🚀

发表 评论

Ikheli lakho le-imeyili ngeke lishicilelwe. 必填 项 已 用 * Ilebula

Skrolela Top