HestiaCP PHP-FPM anba chay lou? Erè dinamik paj wèb 500? Optimize sa a pral pran efè imedyatman!

Èske w te janm rankontre sitiyasyon sa a?Aksè sou sit wèb te toudenkou ralanti, oswa menm lakòz yon erè 500 Apre rekòmanse PHP-FPM, li te retounen nan nòmal., men pwoblèm nan reparèt apre yon ti tan? Sa a se konsa fwistre!

Poukisa sa rive?An reyalite, sa a se nòmalmanPisin nan pwosesis PHP-FPM pa konfigirasyon byen, oswa resous sèvè yo ensifizan.koze pa. Jodi a, nou pral byen optimize HestiaCP PHP-FPM enstale fè sit entènèt la ki estab tankou yon wòch!

Rezon prensipal ki fè PHP-FPM twò chaje

PHP-FPM se yonManadjè Pwosesis, ki responsab pou okipe demann dinamik. Si konfigirasyon an pa rezonab, li ka mennen nan:

  • Resous sèvè yo fin itilize, sa ki lakòz PHP-FPM pa kapab reponn a nouvo demann nan yon fason apwopriye;
  • Twòp kèk pwosesis, lè trafik toudenkou ogmante, li pa ka trete nan tan;
  • Itilizasyon pwosesis la twò wo, sa ki lakòz chaj CPU a eksploze.

HestiaCP PHP-FPM anba chay lou? Erè dinamik paj wèb 500? Optimize sa a pral pran efè imedyatman!

Ki jan yo di si PHP-FPM twò chaje?

ka itilize top Oswa htop Kòmandman pou wè CPU ak itilizasyon memwa:

top -c

Si ou wè enfòmasyon sou pwosesis ki sanble ak sa ki annapre yo, sa vle di PHP-FPM ap kouri anba gwo chaj:

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

Gade ki jan pwosesis sa yo ap pran plis pase 70% CPU a? Si sa rive souvan, PHP-FPM ou Dwe gen yon pwoblèm!

Se konsa, ki jan nou ka optimize konfigirasyon PHP-FPM pou sèvè a pa twò chaje ankò?

Optimizasyon pisin pwosesis PHP-FPM (ajisteman paramèt debaz)

Premyèman, louvri php-fpm Fichye konfigirasyon:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Chanje vèsyon PHP ou a, tankou PHP8.3, epi chanje l pou l vin jan sa a:/etc/php/8.3/fpm/pool.d/www.conf

Fè rechèch sou vèsyon PHP ki tabli pa HestiaCP a

v-list-web-domain user domain.com

E.g:

v-list-web-domain abc chenweiliang.com

Nan pwodiksyon an, ou pral wè yon bagay tankou:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Sa vle di ke sit entènèt la itilize PHP 8.3.

Ann pran yon ti gade sou konfigirasyon PHP-FPM ou a:

[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

Ou ka wè ke ou pm Youn nan itilize se ondemand,Malgre ke li ka diminye itilizasyon resous pandan tan san fè anyen konsa, lè trafik ogmante toudenkou, pwosesis la ka pa kapab reponn a tan., sa ki lakòz yon erè 500.

1. Ajiste paramèt pisin pwosesis PHP-FPM

Si konfigirasyon an itilize dynamicSa a se yon metòd pou kòmanse kèk pwosesis travay davans epi ajiste yo dinamikman selon volim demann lan, sa ki ka reponn pi vit lè volim demann lan ogmante sibitman.

Pou sit entènèt ki gen yon sèten kantite trafik, li rekòmande pou itilize pm = dynamicPaske li ka kenbe yon sèten kantite pwosesis inaktif epi evite 500 erè pandan gwo konkourans.

Li rekòmande pou itilize li sèlman lè volim aksè a trè ba epi resous memwa yo limite. pm = ondemand Pou konsève resous.

Sijere pou ondemand, ak optimize pm.max_children Ak lòt paramèt:

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

Poukisa ou vle chanje li konsa?

  • pm = dynamic: Atribye pwosesis yo plis fleksib pou evite demann ap tann ki ka koze pa ondemand;
  • pm.max_children = 16: Anpeche 500 erè ki te koze pa twò kèk pwosesis;
  • pm.start_servers = 5: Evite pwosesis ralanti demaraj;
  • pm.max_requests = 3000:Anpeche fuite memwa, resikle pwosesis la regilyèman.

2. Limite tan ekzekisyon PHP scripts pou anpeche lokatè alontèm

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

Sa ka anpeche kèkScripts PHP ki itilize twòp CPU ka fè desann sèvè ou a.

Apre ekonomize, rekòmanse pwosesis PHP:

sudo systemctl restart php8.3-fpm

Pèmèt siveyans estati PHP-FPM pou kenbe tras pwogrè a nenpòt ki lè

Pèmèt PHP-FPM siveyans pwosesis epi gade li nenpòt ki lèKantite aktyèl la nan pwosesis aktif ak demann estati datant, pou fè pou evite surcharge sèvè.

php-fpm.conf Te ajoute nan:

pm.status_path = /status

Lè sa a, konfigirasyon 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;
}

Nan fason sa a, ou kapab http://yourdomain.com/status Tcheke PHP-FPM an aksyon!

Optimize PHP-FPM mòso bwa pou rezoud pwoblèm byen vit

php-fpm.conf Ajoute nan:

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

Nan fason sa a, chak fwa yon erè 500 rive, ou ka dirèkteman wè boutèy la:

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

Gade si PHP rapòte yon erè, tankou out of memory,script execution timeout 等.

Rekòmanse PHP-FPM regilyèman pou anpeche fwit memwa

kapab pase cron Rekòmanse PHP-FPM regilyèman pou anpeche pwosesis ki dire lontan lakòzMemwa Leaks.

crontab -e

Ajoute travay pwograme sa a pou rekòmanse otomatikman PHP-FPM a 3 am chak jou:

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

E si pwoblèm nan pèsiste? Pli lwen optimize!

Si ou toujou swiv optimize ki anwo aOkazyonèlman 500 erè rive, ou ka kontinye ak optimize sa yo:

1. Pèmèt OPcache pou amelyore efikasite ekzekisyon PHP

Si OPcache poko aktive, ou ka enstale li konsa (sèvi ak Ubuntu kòm egzanp):

sudo apt install php8.3-opcache -y

Lè sa a edite php.ini:

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

Efè? Vitès ekzekisyon paj PHP yo te amelyore anpil!

2. Nginx optimize konfigirasyon

Asire w ke paramèt ki gen rapò ak Nginx yo rezonab, tankou fastcgi_read_timeout Ajiste li kòmsadwa pou evite script PHP yo te sispann pa Nginx akòz tan ekzekisyon long:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Rezime: Optimize PHP-FPM ak sit entènèt la p ap aksidan ankò!

Ki ajisteman nou te fè apre optimize sa a?

✅ Optimize pisin pwosesis PHP-FPM, itilize ondemandAk optimize pm.max_children paramèt;
Limite tan ekzekisyon PHP scripts, pou anpeche okipasyon CPU alontèm;
Pèmèt PHP-FPM siveyans, wè chaj pwosesis la an tan reyèl;
Optimize PHP-FPM mòso bwa, byen vit rezoud 500 erè;
Rekòmanse PHP-FPM regilyèman, anpeche fwit memwa;
Pèmèt OPcache, amelyore efikasite ekzekisyon PHP;
Optimize konfigirasyon Nginx, pou evite pwoblèm timeout.

Apre optimize sa a, chaj PHP-FPM la pral redwi anpil epi operasyon sit entènèt la pral pi estab! 🔥

Ale eseye li kounye a! 💪🚀

kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo te itilize * Mete etikèt sou

Ki gen tèt