HestiaCP PHP-FPM iri pasi pemutoro unorema? Dynamic web peji 500 kukanganisa? Iyi optimization ichaita nekukurumidza!

Wakambosangana nemamiriro ezvinhu aya here?Kuwanikwa kwewebhusaiti kwakangoerekana kwadzikira, kana kutokonzera kukanganisa kwe500 Mushure mekutangazve PHP-FPM, yakadzokera kune yakajairika., asi chinetso chinozovapozve pashure penguva yakati? Izvi zvinoshungurudza zvikuru!

Nei izvi zvichiitika?Muchokwadi, izvi zvinowanzoitikaIyo PHP-FPM process pool haina kugadzirwa zvakanaka, kana maseva zviwanikwa hazvina kukwana.zvakakonzerwa ne. Nhasi, tichanyatsogadzirisa HestiaCP PHP-FPM pasi pehodhi inoita kuti webhusaiti igadzikane sedombo!

Chikonzero chikuru nei PHP-FPM yakawandisa

PHP-FPM ndeyeProcess Manager, iyo ine basa rekubata zvikumbiro zvine simba. Kana iyo gadziriso isingaite, inogona kutungamira kune:

  • Server zviwanikwa zvapera, zvichiita kuti PHP-FPM isakwanise kupindura zvikumbiro zvitsva nenguva;
  • Maitiro mashoma, apo motokari inowedzera kamwe kamwe, haigoni kugadziriswa nenguva;
  • Kushandiswa kwemaitiro kwakanyanyisa, zvichiita kuti CPU iwedzere kuputika.

HestiaCP PHP-FPM iri pasi pemutoro unorema? Dynamic web peji 500 kukanganisa? Iyi optimization ichaita nekukurumidza!

Nzira yekuziva sei kana PHP-FPM yakawandisa?

anogona kushandisa top Kana htop Raira kuona CPU uye ndangariro kushandiswa:

top -c

Kana iwe ukaona ruzivo rwekuita zvakafanana neinotevera, zvinoreva kuti PHP-FPM iri kushanda pasi pemutoro wakakura:

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

Wona maitiro aya ari kutora pamusoro pe70% yeCPU? Kana izvi zvikaitika kazhinji, yako PHP-FPM Panofanira kuva nedambudziko!

Saka, isu tingagone sei kukwidziridza iyo PHP-FPM kumisikidzwa kuitira kuti server isaremerwa?

PHP-FPM process pool optimization (yakakosha parameter kugadzirisa)

Kutanga, vhura php-fpm Mafaira ekugadzirisa:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Shandura kune yako PHP vhezheni, senge PHP8.3, uye uchinje kune iyi:/etc/php/8.3/fpm/pool.d/www.conf

Bvunza iyo PHP vhezheni yakaiswa naHestiaCP

v-list-web-domain user domain.com

E.g:

v-list-web-domain abc chenweiliang.com

Mukubuda, iwe uchaona chimwe chinhu chakadai:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Izvi zvinoreva kuti saiti inoshandisa PHP 8.3.

Ngatitarisei yako PHP-FPM kumisikidzwa:

[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

Unogona kuona kuti wako pm Iyo inoshandiswa ndeye ondemand,Kunyangwe ichigona kuderedza kushandiswa kwezviwanikwa panguva yekusaita basa, kana traffic ikangoerekana yawedzera, maitiro acho anogona kusakwanisa kupindura nenguva., zvichikonzera kukanganisa kwe500.

1. Gadzirisa PHP-FPM process pool parameters

Kana iyo configuration inoshandisa dynamicIyi inzira yekutanga-kutanga mamwe maitiro ebasa uye nekuagadzirisa zvine simba zvinoenderana nevhoriyamu yekukumbira, iyo inogona kupindura nekukurumidza kana vhoriyamu yekukumbira ichiwedzera.

Kune mawebhusaiti ane huwandu hwetraffic, inokurudzirwa kushandisa pm = dynamicNekuti inogona kuchengetedza imwe huwandu husina basa maitiro uye kudzivirira mazana mashanu zvikanganiso panguva yakakwira concurrency.

Inokurudzirwa kuishandisa chete kana vhoriyamu yekuwana yakadzikira zvakanyanya uye zviwanikwa zvekurangarira zvakasimba. pm = ondemand Kuchengetedza zviwanikwa.

Suggested to ondemand, uye optimize pm.max_children Uye mamwe ma parameters:

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

Sei uchida kuchichinja seizvi?

  • pm = dynamic: Govera maitiro zviri nyore kudzivirira kumirira kwekukumbira kunogona kukonzerwa nekudiwa;
  • pm.max_children = 16: Dzivirira kukanganisa kwe500 kunokonzerwa nemaitiro mashoma;
  • pm.start_servers = 5: Dzivisa kunonoka muitiro kutanga;
  • pm.max_requests = 3000:Kudzivirira kudonha kwendangariro, dzokorora nzira yacho nguva dzose.

2. Deredza nguva yekuitwa kwePPP zvinyorwa kudzivirira kugara kwenguva refu

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

Izvi zvinogona kudzivirira vamwePHP zvinyorwa zvinoshandisa CPU yakawandisa zvinogona kuunza pasi server yako.

Mushure mekuchengetedza, tangazve iyo PHP maitiro:

sudo systemctl restart php8.3-fpm

Gonesa PHP-FPM mamiriro ekutarisa kuti utarise kufambira mberi chero nguva

Gonesa PHP-FPM maitiro ekutarisa uye kuiona chero nguvaNhamba yezvino yemaitiro anoshanda uye kukumbira kumirira mamiriro, kudzivirira server kuwandisa.

mu php-fpm.conf Yakawedzerwa mu:

pm.status_path = /status

Zvadaro, Nginx gadziriro:

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

Nenzira iyi, unogona http://yourdomain.com/status Tarisa uone PHP-FPM mukuita!

Gadzirisa PHP-FPM matanda kukurumidza kugadzirisa matambudziko

mu php-fpm.conf Wedzera 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 的脚本记录到日志

Nenzira iyi, pese pakaitika kukanganisa kwe500, unogona kuona zvakananga irogi:

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

Ona kana PHP ichitaura chikanganiso, senge out of memory,script execution timeout Mirira.

Tangazve PHP-FPM nguva nenguva kudzivirira kudonha kwendangariro

kukwanisa kudarika cron Tangazve PHP-FPM nguva nenguva kudzivirira maitiro ekufamba kwenguva kubva pakukonzeraMemory Leaks.

crontab -e

Wedzera rinotevera rakarongwa basa kuti utangezve PHP-FPM na3 am zuva rega rega:

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

Zvakadini kana chinetso chacho chikaramba chiripo? Kuwedzera optimization!

Kana iwe uchiri kutevera pamusoro optimizationDzimwe nguva 500 kukanganisa kunoitika, unogona kuenderera mberi neanotevera optimizations:

1. Gonesa OPcache kunatsiridza PHP execution kunyatsoshanda

Kana OPcache isati yagoneswa, unogona kuiisa seizvi (uchishandisa Ubuntu semuenzaniso):

sudo apt install php8.3-opcache -y

Wobva wagadzirisa php.ini:

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

Effect? PHP peji execution yekumhanyisa yakagadziridzwa zvakanyanya!

2. Nginx kugadzirisa kugadzirisa

Ita shuwa kuti maNginx ane hukama ma paramita ane musoro, senge fastcgi_read_timeout Chigadzirise nemazvo kuti udzivise PHP zvinyorwa kumiswa neNginx nekuda kwenguva refu yekuuraya:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Pfupiso: Gadzirisa PHP-FPM uye webhusaiti haichaparadzi!

Ndedzipi shanduko dzatakaita mushure mekugadzirisa uku?

✅ Kugadzirisa iyo PHP-FPM process dziva, shandisa ondemandUye optimize pm.max_children parameter;
Kudzikamisa nguva yekuuraya yePP zvinyorwa, kudzivirira kwenguva refu CPU basa;
Gonesa PHP-FPM yekutarisa, tarisa maitiro ekuremedza munguva chaiyo;
Kugadzirisa PHP-FPM matanda, kurumidza kugadzirisa zvikanganiso zve500;
Tangazve PHP-FPM nguva dzose, kudzivirira kudonha kwendangariro;
Shandisa OPcache, kunatsiridza PHP kuuraya kunyatsoshanda;
Kugadzirisa Nginx Configuration, kudzivirira nyaya dzekupedza nguva.

Mushure mekugadzirisa uku, iyo PHP-FPM mutoro uchadzikiswa zvakanyanya uye kushanda kwewebhusaiti kuchave kwakagadzikana! 🔥

Enda uedze izvozvi! 💪🚀

发表 评论

Yako email kero haizoburitswa. Minda inodiwa inoshandiswa * Chitaera

Mupumburu TOP