HestiaCP PHP-FPM është nën ngarkesë të madhe? Gabim në faqen dinamike të internetit 500? Ky optimizim do të hyjë në fuqi menjëherë!

A e keni hasur ndonjëherë këtë situatë?Qasja në uebfaqe u ngadalësua papritmas, ose madje rezultoi në një gabim 500 Pas rinisjes së PHP-FPM, u kthye në normalitet., por problemi rishfaqet pas pak? Kjo është kaq frustruese!

Pse po ndodh kjo?Në fakt, kjo është zakonishtGrupi i proceseve PHP-FPM nuk është konfiguruar siç duhet, ose burimet e serverit janë të pamjaftueshme.shkaktuar nga. Sot, ne do të optimizojmë tërësisht HestiaCP PHP-FPM nën kapuç e bën faqen e internetit të qëndrueshme si një gur!

Arsyeja kryesore pse PHP-FPM është e mbingarkuar

PHP-FPM është njëMenaxheri i procesit, i cili është përgjegjës për trajtimin e kërkesave dinamike. Nëse konfigurimi nuk është i arsyeshëm, mund të çojë në:

  • Burimet e serverit janë shteruar, duke bërë që PHP-FPM të mos jetë në gjendje t'u përgjigjet kërkesave të reja në kohën e duhur;
  • Shumë pak procese, kur trafiku rritet papritur, ai nuk mund të përpunohet në kohë;
  • Përdorimi i procesit është shumë i lartë, duke bërë që ngarkesa e CPU të shpërthejë.

HestiaCP PHP-FPM është nën ngarkesë të madhe? Gabim në faqen dinamike të internetit 500? Ky optimizim do të hyjë në fuqi menjëherë!

Si të dalloni nëse PHP-FPM është i mbingarkuar?

mund të përdorin top ose htop Komanda për të parë përdorimin e CPU dhe kujtesës:

top -c

Nëse shihni informacionin e procesit të ngjashëm me sa vijon, do të thotë që PHP-FPM po funksionon nën ngarkesë të lartë:

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

Shihni se si këto procese po marrin mbi 70% të CPU-së? Nëse kjo ndodh shpesh, PHP-FPM juaj Duhet të ketë një problem!

Pra, si mund të optimizojmë konfigurimin PHP-FPM në mënyrë që serveri të mos mbingarkohet më?

Optimizimi i grupit të procesit PHP-FPM (rregullimi i parametrit bazë)

Së pari, hap php-fpm Skedarët e konfigurimit:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Ndryshoni në versionin tuaj të PHP-së, siç është PHP8.3, dhe ndryshojeni atë në këtë:/etc/php/8.3/fpm/pool.d/www.conf

Kërko versionin PHP të vendosur nga HestiaCP

v-list-web-domain user domain.com

E.g:

v-list-web-domain abc chenweiliang.com

Në dalje, do të shihni diçka të tillë:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Kjo do të thotë që faqja e internetit përdor PHP 8.3.

Le të hedhim një vështrim në konfigurimin tuaj 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

Ju mund të shihni se juaji pm e përdorur është ondemand,Megjithëse mund të zvogëlojë përdorimin e burimeve gjatë kohës së papunë, kur trafiku rritet papritur, procesi mund të mos jetë në gjendje të përgjigjet në kohë., duke rezultuar në një gabim 500.

1. Rregulloni parametrat e grupit të procesit PHP-FPM

Nëse konfigurimi përdor dynamicKjo është një metodë për të para-nisur disa procese pune dhe për t'i rregulluar ato dinamikisht sipas vëllimit të kërkesave, të cilat mund të përgjigjen më shpejt kur vëllimi i kërkesave rritet papritur.

Për faqet e internetit me një sasi të caktuar trafiku, rekomandohet të përdoret pm = dynamicSepse mund të mbajë një sasi të caktuar procesesh joaktive dhe të shmangë 500 gabime gjatë njëkohshmërisë së lartë.

Rekomandohet ta përdorni vetëm kur vëllimi i aksesit është jashtëzakonisht i ulët dhe burimet e memories janë të pakta. pm = ondemand Për të kursyer burime.

Sugjerohet të ndryshohet në ondemand, dhe optimizoni pm.max_children Dhe parametra të tjerë:

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

Pse doni ta ndryshoni në këtë mënyrë?

  • pm = dynamic: Alokoni proceset në mënyrë më fleksibël për të shmangur pritjen e kërkesave që mund të shkaktohen nga kërkesa;
  • pm.max_children = 16: Parandaloni 500 gabime të shkaktuara nga shumë pak procese;
  • pm.start_servers = 5: Shmangni fillimin e ngadaltë të procesit;
  • pm.max_requests = 3000:Parandalimi i rrjedhjeve të kujtesës, ricikloni procesin rregullisht.

2. Kufizoni kohën e ekzekutimit të skripteve PHP për të parandaluar pushtimin afatgjatë

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

Kjo mund të parandalojë disaSkriptet PHP që përdorin shumë CPU mund të rrëzojnë serverin tuaj.

Pas ruajtjes, rinisni procesin PHP:

sudo systemctl restart php8.3-fpm

Aktivizo monitorimin e statusit PHP-FPM për të mbajtur gjurmët e progresit në çdo kohë

Aktivizo monitorimin e procesit PHP-FPM dhe shikoje atë në çdo kohëNumri aktual i proceseve aktive dhe statusi i kërkesës në pritje, për të shmangur mbingarkimin e serverit.

php-fpm.conf Shtuar në:

pm.status_path = /status

Pastaj, konfigurimi 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;
}

Në këtë mënyrë, ju mund të http://yourdomain.com/status Shikoni PHP-FPM në veprim!

Optimizoni regjistrat PHP-FPM për të zgjidhur shpejt problemet

php-fpm.conf Shto në:

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

Në këtë mënyrë, sa herë që ndodh një gabim 500, ju mund të shikoni drejtpërdrejt regjistrin:

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

Shihni nëse PHP raporton një gabim, si p.sh out of memory,script execution timeout 等.

Rinisni rregullisht PHP-FPM për të parandaluar rrjedhjet e kujtesës

në gjendje të kalojë cron Rinisni rregullisht PHP-FPM për të parandaluar shkaktimin e proceseve të gjataRrjedhje memorie.

crontab -e

Shtoni detyrën e mëposhtme të planifikuar për të rifilluar automatikisht PHP-FPM në orën 3 të mëngjesit çdo ditë:

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

Po sikur problemi të vazhdojë? Optimizimi i mëtejshëm!

Nëse vazhdoni të ndiqni optimizimin e mësipërmHerë pas here ndodhin 500 gabime, mund të vazhdoni me optimizimet e mëposhtme:

1. Aktivizo OPcache për të përmirësuar efikasitetin e ekzekutimit të PHP

Nëse OPcache nuk është aktivizuar ende, mund ta instaloni në këtë mënyrë (duke përdorur Ubuntu si shembull):

sudo apt install php8.3-opcache -y

Pastaj redakto php.ini:

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

Efekti? Shpejtësia e ekzekutimit të faqes PHP është përmirësuar shumë!

2. Optimizimi i konfigurimit Nginx

Sigurohuni që parametrat e lidhur me Nginx të jenë të arsyeshëm, si p.sh fastcgi_read_timeout Rregullojeni siç duhet për të shmangur përfundimin e skripteve PHP nga Nginx për shkak të kohës së gjatë të ekzekutimit:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Përmbledhje: Optimizo PHP-FPM dhe faqja e internetit nuk do të rrëzohet më!

Çfarë rregullimesh kemi bërë pas këtij optimizimi?

✅ Optimizimi i grupit të proceseve PHP-FPM, përdorni ondemandDhe optimizoni pm.max_children parametër;
Kufizimi i kohës së ekzekutimit të skripteve PHP, për të parandaluar pushtimin afatgjatë të CPU-së;
Aktivizo monitorimin PHP-FPM, shikoni ngarkesën e procesit në kohë reale;
Optimizimi i regjistrave PHP-FPM, zgjidhni shpejt 500 gabime;
Rinisni rregullisht PHP-FPM, parandaloni rrjedhjet e kujtesës;
Aktivizo OPcache, të përmirësojë efikasitetin e ekzekutimit të PHP;
Optimizimi i konfigurimit Nginx, për të shmangur problemet e afatit.

Pas këtij optimizimi, ngarkesa PHP-FPM do të reduktohet shumë dhe funksionimi i faqes në internet do të jetë më i qëndrueshëm! 🔥

Shko provo tani! 💪🚀

Blogu Hope Chen Weiliang ( https://www.chenweiliang.com/ ) shpërndau "Ngarkesa e HestiaCP PHP-FPM është shumë e lartë? Gabim në faqen dinamike të internetit 500? Ky optimizim do të hyjë në fuqi menjëherë! ”, mund të jetë e dobishme për ju.

Mirë se vini të shpërndani lidhjen e këtij artikulli:https://www.chenweiliang.com/cwl-32512.html

Për të zhbllokuar më shumë truke të fshehura🔑, mirë se vini të bashkoheni me kanalin tonë në Telegram!

Shpërndaje dhe like nëse të pëlqen! Ndarjet dhe pëlqimet tuaja janë motivimi ynë i vazhdueshëm!

 

发表 评论

Adresa juaj e emailit nuk do të publikohet. Përdoren fushat e kërkuara * Etiketa

Scroll to Top