Socrú PHP-FPM: bain úsáid as pm statach le haghaidh feidhmíochta uasta

Socrú PHP-FPM: bain úsáid as pm statach le haghaidh feidhmíochta uasta

Foilsíodh leagan gan eagarthóireacht ar an alt seo ar dtús haidenjames.io agus foilsithe anseo lena cead an t-údar.

Inseoidh mé duit go hachomair conas is fearr PHP-FPM a chumrú chun tréchur a mhéadú, latency a laghdú, agus LAP agus cuimhne a úsáid ar bhealach níos comhsheasmhaí. De réir réamhshocraithe, tá an líne PM (bainisteoir próisis) i PHP-FPM dinimiciúil, agus mura bhfuil go leor cuimhne agat, ansin is fearr é a shuiteáil ar éileamh. Déanaimis 2 rogha rialaithe a chur i gcomparáid bunaithe ar dhoiciméadú php.net agus féach ar an difríocht atá idir an ceann is fearr liom agus iad statach pm le haghaidh tráchta ardmhéid:

pm = dinimiciúil — déantar líon na bpróiseas leanaí a chumrú go dinimiciúil bunaithe ar na treoracha seo a leanas: pm.max_children, pm.start_server,pm.min_spare_server, pm.max_spare_server.
pm = achmand - cruthaítear próisis ar éileamh (seachas cruthú dinimiciúil, nuair a sheoltar pm.start_servers nuair a thosaíonn an tseirbhís).
pm = statach — tá líon na bpróiseas linbh socraithe agus léirithe ag an bparaiméadar pm.max_páistí.

Le haghaidh sonraí, féach liosta iomlán de threoracha domhanda php-fpm.conf.

Cosúlachtaí idir bainisteoir próisis PHP-FPM agus rialtóir minicíochta an LAP

D'fhéadfadh sé seo cosúil le offtopic, ach tá mé chun é seo a nascadh leis an ábhar na cumraíochta PHP-FPM. Cé nach bhfuil taithí ag moilliú próiseálaí uair amháin ar a laghad - ar ríomhaire glúine, ar mheaisín fíorúil nó ar fhreastalaí tiomnaithe? Cuimhnigh scálú minicíochta LAP? Tá na roghanna seo ar fáil le haghaidh is féidir le nix agus Windows feabhas a chur ar fheidhmíocht agus ar fhreagrúlacht an chórais trí shocrú throttle an phróiseálaí a athrú ó ar éileamh ar feidhmíocht*. An uair seo, déanaimis na tuairiscí a chur i gcomparáid agus breathnú ar na cosúlachtaí:

gobharnóir=ondemand — scálú dinimiciúil ar mhinicíocht próiseálaí ag brath ar an ualach reatha. Léimeann go tapa chuig an uasmhinicíocht agus ansin laghdaítear é de réir mar a mhéadaíonn tréimhsí neamhghníomhaíochta.
gobharnóir = coimeádach = scálú minicíochta dinimiciúil ag brath ar an ualach atá ann faoi láthair. Méaduithe agus laghduithe ar mhinicíocht ar bhealach níos réidhe ná ondemand.
Gobharnóir = feidhmíocht — bíonn an mhinicíocht uasta i gcónaí.

Le haghaidh sonraí, féach liosta iomlán de pharaiméadair rialtóir minicíochta próiseálaí.

Féach ar na cosúlachtaí? Bhí mé ag iarraidh an chomparáid seo a thaispeáint chun a chur ina luí ort gurb é is fearr é a úsáid pm statach le haghaidh PHP-FPM.

Le haghaidh paraiméadar an rialtóir próiseálaí feidhmíocht Cuidíonn sé le feidhmíocht a mhéadú go sábháilte toisc go mbraitheann sé beagnach go hiomlán ar theorainn LAP an fhreastalaí. Chomh maith leis seo, ar ndóigh, tá fachtóirí cosúil le teocht, muirear ceallraí (i ríomhaire glúine) agus fo-iarsmaí eile de shíor ag rith an próiseálaí ag 100%. Cinntíonn an socrú feidhmíochta an fheidhmíocht próiseálaí is tapúla. Léigh, mar shampla, faoi paraiméadar force_turbo i Raspberry Pilena n-úsáidfidh an painéal RPi an rialtóir feidhmíocht, áit a mbeidh an feabhsú feidhmíochta níos suntasaí mar gheall ar an luas clog LAP íseal.

Úsáid pm statach chun uasfheidhmíocht an fhreastalaí a bhaint amach

Rogha PHP-FPM pm statach ag brath go mór ar an gcuimhne saor in aisce ar an bhfreastalaí. Má tá cuimhne íseal, is fearr a roghnú ar éileamhdinimiciúil. Ar an láimh eile, má tá cuimhne agat, is féidir leat an bainisteoir próisis PHP a sheachaint trí pm a shocrú statach go dtí an toilleadh freastalaí uasta. I bhfocail eile, má ríomhtar gach rud go maith, ní mór duit a bhunú pm.statach go dtí an líon uasta de phróisis PHP-FPM is féidir a chur i gcrích, gan fadhbanna a chruthú le cuimhne íseal nó le taisce. Ach níl sé chomh hard sin go sáraíonn sé na próiseálaithe agus carnann sé roinnt oibríochtaí PHP-FPM ag fanacht le cur i gcrích.

Socrú PHP-FPM: bain úsáid as pm statach le haghaidh feidhmíochta uasta

Sa screenshot thuas, tá an freastalaí pm = statach agus pm.max_children = 100, agus tógann sé seo thart ar 10 GB as an 32 atá ar fáil. Tabhair aird ar na colúin aibhsithe, tá gach rud soiléir anseo. Sa screenshot seo bhí thart ar 200 úsáideoir gníomhach (níos mó ná 60 soicind) in Google Analytics. Ag an leibhéal seo, tá thart ar 70% de phróisis leanaí PHP-FPM fós díomhaoin. Ciallaíonn sé seo go bhfuil PHP-FPM socraithe i gcónaí ar an méid uasta acmhainní freastalaí beag beann ar an trácht reatha. Fanann próiseas díomhaoin le buaicphointí tráchta agus freagraíonn sé láithreach. Ní gá duit fanacht go dtí pm cruthóidh sé próisis linbh agus ansin cuirfidh sé deireadh leo nuair a théann an tréimhse in éag pm.process_idle_timeout. Shocraigh mé an luach go dtí an-ard pm.max_iarrataistoisc gur freastalaí oibre é seo gan aon sceitheadh ​​cuimhne i PHP. Is féidir leat a shuiteáil pm.max_requests = 0 le statach má tá tú muiníneach go hiomlán as scripteanna PHP reatha agus amach anseo. Ach is fearr na scripteanna a athreáchtáil le himeacht ama. Socraigh líon mór iarratas, mar ba mhaith linn costais pm gan ghá a sheachaint. Mar shampla, ar a laghad pm.max_requests = 1000 - ag brath ar chainníocht pm.max_páistí agus líon na n-iarratas in aghaidh an tsoicind.

Taispeánann an screenshot an t-ordú Linux barr, scagtha ag u (úsáideoir) agus ainm úsáideora PHP-FPM. Ní thaispeántar ach an chéad 50 próiseas nó mar sin (ní raibh mé ag comhaireamh go díreach), ach go bunúsach taispeánann an barr na staitisticí is fearr a luíonn isteach i bhfuinneog an teirminéil. Sa chás seo sórtáilte de réir % CPU (% CPU). Chun gach próiseas 100 PHP-FPM a fheiceáil, reáchtáil an t-ordú:

top -bn1 | grep php-fpm

Cathain is ceart pm ondemand agus dinimiciúil a úsáid

Má úsáideann tú pm dinimiciúil, tarlaíonn earráidí mar seo:

WARNING: [pool xxxx] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4 idle, and 59 total children

Bain triail as an paraiméadar a athrú, ní bheidh an earráid imithe, cosúil le cur síos air sa phostáil seo ar Serverfault. Sa chás seo, bhí an luach pm.min ró-bheag, agus ós rud é go n-athraíonn an trácht gréasáin an oiread sin agus go bhfuil beanna arda agus gleannta domhain ann, tá sé deacair pm a choigeartú go leordhóthanach. dinimiciúil. De ghnáth úsáidtear pm ar éileamh, mar a mholtar sa phost céanna. Ach tá sé seo níos measa fós, mar gheall ar ar éileamh cuireann sé deireadh le próisis díomhaoin go nialas nuair nach bhfuil mórán tráchta nó gan trácht ar bith ann, agus beidh tú fós ag deireadh le forchostais an tráchta atá ag athrú. Mura rud é, ar ndóigh, socraíonn tú am feithimh ollmhór. Agus ansin tá sé níos fearr a úsáid pm.statach + líon ard pm.max_iarratais.

PM dinimiciúil agus go háirithe ar éileamh seans go mbeidh sé áisiúil má tá roinnt linnte PHP-FPM agat. Mar shampla, óstaíonn tú cuntais iolracha cPanel nó láithreáin ghréasáin iolracha i linnte éagsúla. Tá freastalaí agam le, abair, 100+ cuntas cpanel agus thart ar 200 fearann, agus ní shábhálfadh pm.static nó fiú dinimiciúil mé. Níl uait ach anseo ar éileamh, tar éis an tsaoil, faigheann níos mó ná dhá thrian de láithreáin ghréasáin beagán tráchta nó gan trácht ar bith, agus le ar éileamh titfidh gach próiseas linbh amach, rud a shábhálfaidh go leor cuimhne dúinn! Go fortunately, thug na forbróirí cPanel faoi deara é seo agus shocraigh siad an luach mar réamhshocrú ar éileamh. Roimhe seo, nuair a bhí an réamhshocraithe dinimiciúil, ní raibh PHP-FPM oiriúnach do fhreastalaithe comhroinnte gnóthach ar chor ar bith. Bhain go leor úsáid as suPHP, mar gheall ar pm dinimiciúil cuimhne ídithe fiú le linnte díomhaoin agus cuntais cPanel PHP-FPM. Is dócha, má tá an trácht go maith, ní bheidh tú á óstáil ar fhreastalaí le líon mór de linnte PHP-FPM (óstáil roinnte).

Conclúid

Má tá PHP-FPM á úsáid agat agus go bhfuil do thrácht trom, bainisteoirí próisis ar éileamh и dinimiciúil le haghaidh PHP-FPM beidh tréchur teoranta mar gheall ar a bhforchostas dúchasach. Do chóras a thuiscint agus próisis PHP-FPM a chumrú de réir acmhainne uasta an fhreastalaí. An chéad sraith pm.max_páistí ag brath ar úsáid uasta pm dinimiciúilar éileamh, agus ansin an luach seo a mhéadú go leibhéal ina n-oibreoidh an chuimhne agus an próiseálaí gan a bheith ró-ualach. Tabharfaidh tú faoi deara é sin le pm statach, ós rud é go bhfuil gach rud i gcuimhne agat, beidh spikes tráchta níos lú faoi deara spikes LAP le himeacht ama, agus beidh an freastalaí agus LAP meáin leibhéal amach. Braitheann meánmhéid próisis PHP-FPM ar an bhfreastalaí gréasáin agus éilíonn sé cumraíocht láimhe, agus mar sin tá bainisteoirí próisis níos uathoibrithe dinimiciúil и ar éileamh - níos mó tóir. Tá súil agam go raibh an t-alt úsáideach.

Suas chun dáta Cairt tagarmharcála curtha leis ab. Má tá próisis PHP-FPM sa chuimhne, méadaíonn an fheidhmíocht ar chostas tomhaltas cuimhne áit a suí agus fanacht. Faigh an rogha is fearr duit féin.

Socrú PHP-FPM: bain úsáid as pm statach le haghaidh feidhmíochta uasta

Foinse: will.com

Add a comment