Lany ny fitadidiana VPS 8-core 24GB? Torolàlana azo ampiharina amin'ny fanitsiana lalina ny process pool PHP-FPM miaraka amin'ny HestiaCP

Ny isan'ny mpampiasa miaraka azon'ny mpizara iray karakaraina dia tsy miankina amin'ny isan'ny cores ananany, fa amin'ny habetsaky ny fahatsiarovana lanin'ny dingana tsirairay.

Mety ho toa fihantsiana ity fanambarana ity, nefa io no traikefa tena misy sy maharary indrindra eo amin'ny sehatry ny asa sy ny fikojakojana.

Nahoana ny fitadidiana no sakana lehibe?

Maro ny olona mahita VPS manana CPU 8-core sy fahatsiarovana 24GB ary mieritreritra tsy nahy fa afaka mampandeha mora foana dingana PHP-FPM an-jatony izy ireo.

Na izany aza, raha ny marina, ny fampiasana fahatsiarovana RSS amin'ny dingana PHP tokana dia matetika mahatratra 200MB.

Ity ny vokatra azo tamin'ny alalan'ny fitsapana tena izy tamin'ny alalan'ny baiko:

ps --no-headers -o rss -p $(pgrep php-fpm) | awk '{sum+=$1} END {print sum/NR/1024 " MB"}'

Ao anatin'ny tontolo sarotra sy plugin maro an'ny HestiaCP , indrindra raha tsy misy fanatsarana ny OPcache, dia 200MB no mahazatra.

Midika izany fa ny fahatsiarovana, fa tsy ny CPU, no fetra henjana mamaritra ny fiaraha-miasa ambony indrindra.

Lany ny fitadidiana VPS 8-core 24GB? Torolàlana azo ampiharina amin'ny fanitsiana lalina ny process pool PHP-FPM miaraka amin'ny HestiaCP

Rakitra fikirakirana atolotra (php-fpm.conf)

pm = dynamic
pm.max_children = 80
pm.start_servers = 16
pm.min_spare_servers = 8
pm.max_spare_servers = 24
pm.max_requests = 500
pm.process_idle_timeout = 10s
request_terminate_timeout = 60s

Lojika kajy masontsivana sy fototra fametrahana

Paramètre configFametrahana ny sandanyKajy fototra sy fototra fametrahana
pmdynamicNy fomba dinamika dia ahafahana manampy na mamafa ireo dingana mifototra amin'ny fepetra takiana amin'ny fiaraha-miasa, ny fandanjalanjana ny hafainganam-pandehan'ny famaliana ary ny fampiasana ny fahatsiarovana.
pm.max_children80Fahatsiarovana 24GB manontolo tsy misy ny kernel sy ny rafitra MySQL/RedisAorian'ny Nginx, eo amin'ny 16GB eo ho eo no sisa ho an'ny PHP.16,384 MB / 200 MB ≈ 81.9Ny fametrahana azy ho 80 dia afaka manafoana tanteraka ny OOM (Out of Memory) mandritra ny fotoana ifandrimbonana avo lenta.
pm.start_servers16Ny fanafanana mialoha amin'ny fanombohana dia apetraka ho avo roa heny noho ny isan'ny cores CPU (cores 8 × 2 = 16) mba hahazoana antoka fa afaka miatrika avy hatrany ny fiaraha-miasa fototra ny serivisy rehefa avy averina atomboka.
pm.min_spare_servers8Apetraho ho 8 ny isan'ny core an'ny CPU mba hahazoana antoka fa azo valiana amin'ny fotoana rehetra ny fangatahana vaovao mandritra ny fotoana tsy dia misy fifamoivoizana.
pm.max_spare_servers24Apetraho ho in-3 ny isan'ny core CPU (core 8 × 3 = 24) mba hitazonana ny isan'ny processeur antonony rehefa mihena ny fifamoivoizana, mba hiatrehana ny fiovaovana malefaka.
pm.max_requests500Raha mahatratra 200MB ny haben'ny rakitra iray, ny fampihenana ny isan'ny fangatahana ho 500 alohan'ny handravana sy hanamboarana azy indray dia afaka manadio haingana kokoa ny fivoahan'ny fahatsiarovana miafina.
pm.process_idle_time out10sindrindra min_spare_servers Avotsotra ho azy ireo dingana tsy mihetsika ary averina ao amin'ny fitadidian'ny rafitra rehefa afaka 10 segondra tsy misy fangatahana.

Fanohanana fototra sy soso-kevitra momba ny fanatsarana

1. Mekanisma fanoherana ny fahatapahan'ny fotoana

request_terminate_timeout = 60s Izany no fanalahidy.

Afaka manafoana an-keriny ireo dingana izay mihidy noho ny tsy fahatomombanan'ny angon-drakitra na ny fanakanana API avy amin'ny antoko fahatelo izy io.

Mandritra izany fotoana izany, ny Nginx fastcgi_read_timeout Tsy maintsy tehirizina mandritra ny 60 segondra farafahakeliny izany, raha tsy izany dia ho azon'ny mpanjifa mialoha ny fotoana. 504 Gateway Timeout.

2. Tetika handresena ny sakana amin'ny fitadidiana

Ny fahafahana manao dingana miaraka miisa 80 fara-fahabetsany dia midika fa ao anatin'ny fepetra miaraka fara-fahabetsany, ny rafitra dia afaka mikarakara fangatahana HTTP dinamika miisa 80 miaraka.

Raha te hanatsara bebe kokoa ny fahafaha-manao ianao dia tokony hifantoka amin'ny fampihenana ny fampiasana fahatsiarovana isaky ny dingana.

  • Alefaso ny OPcache:在 php.ini Fikirana antonony opcache.enable=1 ary opcache.memory_consumption=256Afaka mampihena ny fampiasana fahatsiarovana amin'ny dingana tokana avy amin'ny 200MB ka hatramin'ny 60~100MB ny fitahirizana Bytecode.
  • Fifehezana ara-drariny ny memory_limit:Will php.ini afovoany memory_limit Voafetra ho 128M 或 256MMba hisorohana ny soratra tsy ara-dalàna tsirairaymanam-petraMandany fahatsiarovana be dia be izany.

Raha vao mihena ho 100MB ny fampiasana fahatsiarovana amin'ny dingana iray...pm.max_children Azo havaozina soa aman-tsara ho 150 Ankoatra izany, dia nitombo efa ho avo roa heny ny fahafaha-manao miaraka.

Hevitra manam-pahefana voatonona

Araka ny tolo-kevitra ao amin'ny antontan-taratasy ofisialy Nginx :

"Tokony harahina maso foana ny fampiharana FastCGI miaraka amin'ny toromarika momba ny fotoana lany mba hisorohana ny fahapotehan'ny loharanon-karena."
(Loharano: Nginx Docs)

Milaza mazava tsara ny boky torolalana ofisialy momba ny PHP hoe:

"Ny pm.max_children no mamaritra ny isan'ny dingana zanaka ambony indrindra hoforonina. Ity no toromarika manan-danja indrindra."
(Loharano: Antontan-taratasy PHP-FPM)

Mifanaraka tsara amin'ny fomba fanaonay ireo fomba fijery manana fahefana ireo, izay manaporofo fa ny lojikan'ny fanatsarana dia tsy mifototra amin'ny traikefa ihany, fa amin'ny fomba fanao tsara indrindra manara-penitra ihany koa.

Famaranana: Ny fomba fijeriko sy ny teny nalaina fototra

Amin'ny toe-javatra misy fiaraha-miasa avo lenta, ny CPU no motera, ny fahatsiarovana no tankin-tsolika, ary ny PHP-FPM no mpaninjara ny andian-drakitra.

Na dia mahery toy inona aza ny motera, raha tsy ampy ny fitoeran-tsolika, dia tsy ho lasa lavitra ny fiarabe.

Ny tena manam-pahaizana dia tsy maka ny fara tampony amin'ny masontsivana rehetra, fa manao kajy mazava tsara ny fampiasana ny fahatsiarovana amin'ny dingana tsirairay mba hisorohana ny fandaniam-poana sy ny tondra-drano.

Ny tanjon'ny fanatsarana dia ny fitadiavana ny fandanjalanjana tsara indrindra miaraka amin'ny loharanon-karena voafetra.

Tsy teknolojia fotsiny ihany ity, fa filozofia ihany koa.

Noho izany, atsaharo ny finoana fa "ny isan'ny cores no mamaritra ny zava-drehetra." Ny tena mamaritra ny fetran'ny concurrency dia ny fifehezanao ny fahatsiarovana.

Manaova zavatra ary ampiharo amin'ny fomba feno indrindra ny VPS-nao, ary ampiasao tsara ny fitadidiana rehetra.

Comments

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

Horonana Top