Enta-mavesatra ve ny HestiaCP PHP-FPM? Fahadisoana 500 pejy web dinamika? Hihatra avy hatrany io fanatsarana io!

Efa sendra ity toe-javatra ity ve ianao? Tampoka teo dia miadana ny tranonkalanao, na mamoaka hadisoana 500 mihitsy aza. Ny fanombohana indray ny PHP-FPM dia mamerina azy amin'ny laoniny , saingy miverina indray ilay olana rehefa afaka kelikely? Tena mahasosotra izany!

Fa maninona no mitranga izany? Raha ny marina, matetika izany dia vokatry ny tsy fahatomombanan'ny fikirakirana ny PHP-FPM na ny tsy fahampian'ny loharanon-karena ao amin'ny mpizara . Androany, hanatsara tanteraka ny PHP-FPM amin'ny alàlan'ny HestiaCP izahay mba hahazoana antoka fa maharitra ny tranonkalanao!

Ny antony fototra mahatonga ny PHP-FPM be loatra

PHP-FPM no mpitantana ny fizotran'ny PHP , tompon'andraikitra amin'ny fikirakirana fangatahana dinamika. Ny tsy fandrindrana mety dia mety hiteraka:

  • Lany ny loharanon'ny mpizara, mahatonga ny PHP-FPM tsy afaka mamaly ireo fangatahana vaovao ara-potoana;
  • Vitsy loatra ny dingana, rehefa mitombo tampoka ny fifamoivoizana dia tsy azo karakaraina ara-potoana;
  • Avo loatra ny fampiasana ny dingana, mahatonga ny enta-mavesatra CPU hipoaka.

Enta-mavesatra ve ny HestiaCP PHP-FPM? Fahadisoana 500 pejy web dinamika? Hihatra avy hatrany io fanatsarana io!

Ahoana no ahafantarana raha be loatra ny PHP-FPM?

afaka mampiasa tophtop Didy hijery ny fampiasana CPU sy fitadidiana:

top -c

Raha mahita fampahalalana momba ny fizotran'ny dingana mitovy amin'ireto manaraka ireto ianao dia midika izany fa ny PHP-FPM dia mandeha amin'ny enta-mavesatra be:

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

Mahita ireo dingana ireo mampiasa mihoatra ny 70%-n'ny CPU ve ianao? Raha mitranga matetika izany dia azo antoka fa misy zavatra tsy mety amin'ny PHP-FPM-nao!

Noho izany, ahoana no ahafahantsika manatsara ny fanamafisana PHP-FPM mba tsy ho be loatra ny mpizara?

Fanamafisana ny dobo PHP-FPM (fanitsiana mari-pamantarana fototra)

Voalohany, sokafy php-fpm Fikirakirana:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Ovay amin'ny version PHP-nao, toy ny PHP8.5, ary ovay ho toy izao:/etc/php/8.3/fpm/pool.d/www.conf

Anontanio ny dikan-teny PHP napetrak'i HestiaCP

v-list-web-domain user domain.com

E.g:

v-list-web-domain abc chenweiliang.com

Ao amin'ny output dia hahita zavatra toy izao ianao:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.5 

Midika izany fa mampiasa PHP 8.5 ny tranonkala.

Andeha hojerentsika ny fandrindranao PHP-FPM:

[chenweiliang.com]
listen = /run/php/php8.5-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

Hitanao fa ny anao pm Ny iray ampiasaina dia ondemand,Na dia mety hampihena ny fampiasana loharanon-karena mandritra ny fotoana tsy miasa aza izany, rehefa mitombo tampoka ny fifamoivoizana, dia mety tsy ho afaka hamaly ara-potoana ny dingana., niteraka fahadisoana 500.

www.conf: Ny "vondron-karena manerantany" efa natsangana ao amin'ny rafitra

Rehefa avy nametraka ny PHP-FPM ny rafitra dia hanome anao ho azy ny... www.conf rakitra.
nytoeranyTsotra dia tsotra ilay izy—fikambanana dingana mahazatra fotsiny izy io izay miasa avy hatrany, matetika mifatotra amin'ny... www-tahirin-kevitra Fisintonana ataon'ny mpampiasa.

Ity karazana dobo ity dia tena mety amin'ny tontolo iainana tokana: maivana ny firafitra, ary ny masontsivana rehetra dia môdely ankapobeny, toy ny:

user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm.max_children = 5

Raha tranonkala iray ihany no ampiasainao dia azonao ampiasaina mivantana sy azo itokisana izany tsy misy olana fanampiny.

etOVNI.org.conf: Dobo filomanosana namboarina

Rehefa mitantana tranonkala maromaro ianao dia tsy afaka mitazona ny rehetra ho tafahitsoka ao anaty dobo iray ihany.
Amin'izao fotoana izao, ny HestiaCP dia hamorona ho azy ny dobo misaraka ho an'ny tranonkala tsirairay, ohatra... etOVNI.org.confManokana ho an'ny anaran-tsehatra etufo.org 服务.

Ny fomba filalaovana mahazatra dia:

  • Ovay ny mpampiasa sy ny vondrona:user = etufo,group = etufo
  • Fanaraha-maso mahaleo tena:listen = /run/php/etufo.sock
  • Ny fanitsiana ny isan'ny dingana dia miantoka ny fahamarinan-toerana matanjaka na dia amin'ny fotoana fiaraha-miasa avo aza.
  • Ny rakitra log misaraka dia mahatonga ny famahana olana ho mazava kokoa.

Miharihary ny tombony azo: fitokana-monina azo antoka . Na dia voajirika aza ny tranonkala iray, dia tsy misy fiantraikany amin'ny hafa izany.

dummy.conf: rakitra dummy

dummy.conf Ireo dia mazàna ohatra na môdely omen'ny rafitra.
Tsy hiasa marina izy io raha tsy ovaina sy alefanao tanana.
Ny dikany dia toy ny "boky torolalana" izay milaza aminao ny fomba fanoratana firafitry ny dobo vaovao.

Nahoana no zaraina ny dobo filomanosana?

  • 安全 性Mampiasà mpampiasa samihafa ho an'ny tranonkala samihafa mba hisorohana ny fifanoheran'ny fahazoan-dàlana.
  • 性能优化Azo amboarina tsirairay ho an'ny vondrona tsirairay ny isan'ny dingana, ahafahana manitsy azy ireo araka ny filàn'ny fifamoivoizana.
  • Fitokana-moninaSarahina avokoa ny logs, ny lesoka ary ny adiresy fihainoana, ka manamora ny famahana olana.

Ohatra, na dia mianjera aza ny www.conf , dia mbola hiasa ara-dalàna ihany ny etufo.org.conf ary tsy hampijanona ny mpizara manontolo.

实际场景

  • Mpizara tranonkala tokana: www.conf dia ampy.
  • Mpizara tranonkala maroSamy manana ny rakitra .conf mahaleo tena azy avy ny tranonkala tsirairay, toy ny etufo.org.conf.
  • dummy.confHo an'ny fanondroana fotsiny ihany, tsy soso-kevitra.

Fampitahana ny fikirakirana

www.conf (dobo filokana mahazatra)

[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5

etufo.org.conf (Dobo filomanosana namboarina)

[etufo.org]
user = etufo
group = etufo
listen = /run/php/etufo.sock
pm = dynamic
pm.max_children = 20
access.log = /var/log/php-fpm/etufo.access.log

Ireto ny fahasamihafana lehibe: ny mombamomba ny mpampiasa, ny adiresin'ny mpihaino, ary ny isan'ny dingana.

1. Amboary ny masontsivana dobo fizotry ny PHP-FPM

Raha mampiasa ny configuration dynamicIty dia fomba fanombohana mialoha ny fizotran'ny asa sasany ary manitsy azy ireo araka ny haben'ny fangatahana, izay afaka mamaly haingana kokoa rehefa mitombo tampoka ny habetsaky ny fangatahana.

Ho an'ny vohikala misy fifamoivoizan'ny sasany, dia asaina ampiasaina pm = dynamicSatria afaka mitazona dingana tsy misy dikany izy ary misoroka ny fahadisoana 500 mandritra ny fifandonana avo lenta.

Amporisihina ny hampiasa azy io rehefa tena ambany dia ambany ny haavon'ny fidirana ary tery ny fitadidiana. pm = ondemand Mba hamonjy loharanon-karena.

Soso-kevitra ny dynamic, ary optimize pm.max_children Ary paramètre hafa:

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

Nahoana ianao no te hanova azy toy izao?

  • pm = dynamic: Atokana amin'ny fomba mora kokoa ny fizotrany mba hialana amin'ny fangatahana fiandrasana izay mety ho vokatry ny ondemand;
  • pm.max_children = 16: Misoroka lesoka 500 vokatry ny dingana vitsy loatra;
  • pm.start_servers = 5: Fadio ny manomboka miadana;
  • pm.max_requests = 3000:Fisorohana ny fitadidiana mitete, manodina tsy tapaka ny dingana.

2. Fepetra ny fotoana famonoana ny script PHP mba hisorohana ny fibodoana maharitra

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

Izany dia misoroka ny fianjeran'ny mpizara amin'ny script PHP sasany izay mandany CPU be loatra.

Aorian'ny fitehirizana, avereno indray ny dingana PHP:

sudo systemctl restart php8.3-fpm

Amboary ny PHP-FPM mifototra amin'ny fikirakirana VPS

Ohatra amin'ny fametrahana VPS:

  • Famaritana: VPS 3 NVMe
  • Space kapila: 300 GB
  • CPU cores: 8
  • RAM: 24 GB

Raha jerena ny fikirakirana VPS-nao ( 8 CPU cores, 24 GB RAM ), dia ampy tsara ny loharanon-karena ao amin'ny mpizara anao. Ho an'ny PHP-FPM, ny RAM 24 GB dia ahafahanao manamboatra dingana maro miaraka.

Ao anatin'ny tontolo famokarana, mazàna isika dia manokana fahatsiarovana ampy (ohatra 8GB-12GB) ho an'ny rafitra mihitsy, ny angon-drakitra Apache (toy ny MySQL /MariaDB), ary ny cache (toy ny Redis / Memcached ), ka mamela ny fahatsiarovana 12GB-16GB sisa hozaraina tanteraka amin'ny PHP-FPM.

Raha jerena ny fampiasana fahatsiarovana antonony eo amin'ny 40MB-60MB isaky ny dingana PHP , ny fahatsiarovana 1GB dia afaka mampandeha dingana 16-25 eo ho eo.

Ity manaraka ity dia fikirakirana FPM miaraka amin'ny fahombiazana avo lenta namboarina ho anao , izay afaka manatsara be ny fahafahan'ny WordPress ary misoroka ny fianjerany noho ny fiakaran'ny fifamoivoizana tampoka:

pm = dynamic

; 允许的最大 PHP 进程数(12GB 内存 / 40MB ≈ 300)
; 8核CPU搭配300个进程,可以轻松应对极高并发,且不至于让内存溢出
pm.max_children = 300

; 启动时创建的初始进程数(CPU核心数 * 4)
pm.start_servers = 32

; 维持的最小空闲进程数(服务器空闲时保留的进程,保证随时响应)
pm.min_spare_servers = 16

; 维持的最大空闲进程数(超过这个数量的空闲进程会被释放)
pm.max_spare_servers = 64

; 每个进程处理1000个请求后自动重启,高配置服务器可适当调大,有效防止WP插件内存泄露
pm.max_requests = 1000

; 单个请求最大执行时间,超时60秒强杀,防止死锁卡死
request_terminate_timeout = 60s

; 慢日志路径及触发阈值(请求超过5秒则记录,用于排查性能瓶颈)
slowlog = /var/log/php8.5-fpm.log.slow
request_slowlog_timeout = 5s

💡 Nahoana no toy izao ny fomba fanamboarana azy?

  1. pm.max_children = 300Fanatsarana fototra ity. Ny fandrindranao teo aloha tamin'ny dingana 50 dia tsy dia nahazaka loatra ny fahatsiarovana 24GB. Rehefa sendra fiakaran'ny fifamoivoizana tampoka (na bots mameno ny ambadika), dia ho tototry ny dingana 50 avy hatrany, ka hiteraka fahatapahan'ny fifandraisana. Ny fampitomboana azy ho 300 dia afaka manatsara imbetsaka ny fahafahan'ny mpizara anao mikirakira miaraka.
  2. pm.start_servers / `min_spare_serversSatria manana cores CPU 8 ianao, dia afaka mitazona processes tsy miasa bebe kokoa amin'ny voalohany sy amin'ny ankapobeny, izay ahafahanao manararaotra ny tombony azo avy amin'ny multi-core mba hahafahana manokatra avy hatrany ny fangatahana vaovao tsy mila miandry ny famoronana process.
  3. pm.max_requests = 1000Ampitomboy avy amin'ny 500 ho 1000. Lehibe ny fahatsiarovanao, ary tsy mila averina averina matetika ny fizotran'ny asa. Ny fampitomboana azy ho 1000 dia afaka mampihena ny fandaniana CPU vokatry ny fahasimbana sy ny famoronana fizotran'asa matetika.

Jereo ny diary miadana:

tail -f /var/log/php8.5-fpm.log.slow
tail -f /var/log/php8.4-fpm.log.slow

Rehefa vita ny fanovana dia tadidio ny hanomboka indray ny serivisy PHP-FPM mba hampiharana ireo fanovana.

systemctl restart php8.5-fpm

Alefaso ny fanaraha-maso ny sata PHP-FPM hanaraha-maso ny fivoarana amin'ny fotoana rehetra

Ny fampandehanana ny fanaraha-maso ny fizotran'ny PHP-FPM dia ahafahanao mijery ny isan'ny fizotran'ny asa mavitrika sy ny satan'ny fiandrasana fangatahana amin'ny fotoana rehetra , hisorohana ny fihoaram-pefy amin'ny mpizara.

In php-fpm.conf Nampiana tao:

pm.status_path = /status

Avy eo, ny konfigurasi 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;
}

Amin'izany fomba izany dia azonao atao http://yourdomain.com/status Jereo ny PHP-FPM miasa!

Amboary ny logs PHP-FPM mba hamahana olana haingana

In php-fpm.conf Hatovana ny:

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

Amin'izany fomba izany, isaky ny misy hadisoana 500 dia azonao jerena mivantana ny log:

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

Jereo raha mitatitra lesoka ny PHP, toy ny out of memory,script execution timeout 等.

Avereno tsy tapaka ny PHP-FPM mba hisorohana ny fiporisan'ny fahatsiarovana

afaka mandalo cron Avereno indray ny PHP-FPM tsy tapaka mba hisorohana ny fizotran'ny fotoana maharitraMemory Leaks.

crontab -e

Ampio ity asa voalahatra manaraka ity hamerenana ho azy PHP-FPM amin'ny 3 ora maraina isan'andro:

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

Ahoana raha mitohy ny olana? Fanatsarana bebe kokoa!

Raha mbola sendra fahadisoana 500 ianao indraindray rehefa avy nanaraka ireo fanatsarana etsy ambony ireo dia azonao atao ny manohy amin'ireto fanatsarana manaraka ireto:

1. Alefaso ny OPcache hanatsarana ny fahombiazan'ny famonoana PHP

Raha mbola tsy mandeha ny OPcache dia azonao atao ny mametraka azy toy izao (mampiasa Ubuntu ho ohatra):

sudo apt install php8.5-opcache -y

Avy eo manitsy php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=0
  • opcache.validate_timestamps=0
  • Atsaharo ny fitadiavana amin'ny fotoana tena izyAhena ny fampidirana/famoahana ny rakitra ao amin'ny rafitra ary hatsarao ny fahombiazana.
  • Na izany aza, midika izany fa tsy maintsy mamafa tanana ny cache ianao (mamerina manomboka ny serivisy PHP) rehefa avy manova ny rakitra PHP.

Rehefa avy nanova ny configuration ianao dia tsy maintsy averinao atomboka ny serivisy PHP mba hampiharana ireo fanovana.

sudo systemctl restart php<版本>-fpm

Vokatra? Nihatsara be ny hafainganam-pandehan'ny pejy PHP!

2. Optimization ny konfigurasi Nginx

Ataovy azo antoka fa mitombina ny parameter mifandraika amin'ny Nginx, toy ny fastcgi_read_timeout Ampifanaraho amin'ny tokony ho izy izany mba hisorohana ny script PHP atsahatra amin'ny Nginx noho ny fotoana famonoana maharitra:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Famintinana: Amboary ny PHP-FPM dia tsy hirodana intsony ny tranokala!

Inona no fanitsiana nataontsika taorian'io fanatsarana io?

✅ Fanamafisana ny dobo fizotry ny PHP-FPM, fampiasana ondemandAry optimize pm.max_children parameter;
Famerana ny fotoana famonoana ny script PHP, mba hisorohana ny fibodoana CPU maharitra;
Alefaso ny fanaraha-maso PHP-FPM, jereo ny enta-mavesatra amin'ny fotoana tena izy;
Optimizing PHP-FPM logs, hamaha haingana ny fahadisoana 500;
Avereno indray ny PHP-FPM tsy tapaka, misoroka ny fitadidiana mitete;
Alefaso ny OPcache, manatsara ny fahombiazan'ny famonoana PHP;
Optimizing Nginx Configuration, mba hialana amin'ny olana amin'ny fotoam-potoana.

Aorian'ity fanatsarana ity dia hihena be ny entana PHP-FPM ary hilamina kokoa ny fiasan'ny tranokala! 🔥

Andeha andramo izao! 💪🚀

Raha mbola te hianatra bebe kokoa momba ny fanamboarana ireo môdely PHP-FPM amin'ny HestiaCP ianao dia ity lahatsoratra ity dia hanome anao fahatakarana lalindalina kokoa:

👉 Endrika PHP-FPM namboarina manokana HestiaCP: Tsiambaratelon'ny fanatsarana ny fahombiazana PHP 8.5 ▼

Ao amin'ity votoaty ity dia ho hitanao:

  • Teknika fanatsarana miaraka avo lenta: Ahoana no hanatsarana ny hafainganam-pandehan'ny famaliana amin'ny alàlan'ny fandrindrana ny dingana araka ny antonony.
  • Vahaolana amin'ny fiarovana mitokana: Fadio ny mety hisian'ny fidirana amin'ny tranonkala maro ary ataovy izay hahamarin-toerana ny kaonty.
  • Log sy fanaraha-maso: Ampiasao ny log miadana mba hahitana ireo sakana ary hanatsarana hatrany ny fahombiazan'ny tranonkala.

Comments

您的邮箱地址不会被公开。必填项已用*标注

Horonana Top