Chaidh dreach neo-dheasaichte den artaigil seo fhoillseachadh an toiseach
Innsidh mi dhut gu h-aithghearr dè an dòigh as fheàrr air PHP-FPM a rèiteachadh gus gluasad a mheudachadh, latency a lughdachadh, agus CPU agus cuimhne a chleachdadh nas cunbhalaiche. Gu gnàthach, tha an loidhne PM (manaidsear pròiseas) ann am PHP-FPM Fiùghantach, agus mura h-eil cuimhne gu leòr agad, tha e nas fheàrr a stàladh àithne. Dèanamaid coimeas eadar roghainnean smachd 2 stèidhichte air na sgrìobhainnean php.net agus faic mar a tha am fear as fheàrr leam eadar-dhealaichte bhuapa socrach pm airson trafaic àrd:
pm = fiùghantach - tha an àireamh de phròiseasan cloinne air an rèiteachadh gu dinamach stèidhichte air na stiùiridhean a leanas: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = moladh - tha pròiseasan air an cruthachadh a rèir iarrtas (an taca ri cruthachadh fiùghantach, nuair a thèid pm.start_servers a chuir air bhog nuair a thòisicheas an t-seirbheis).
pm = staitigeach - tha an àireamh de phròiseasan cloinne stèidhichte agus air a chomharrachadh leis a’ pharamadair pm.max_clann.
Airson mion-fhiosrachadh, faic
Coltas eadar manaidsear pròiseas PHP-FPM agus rianadair tricead CPU
Is dòcha gu bheil seo a ’coimhead neo-àbhaisteach, ach tha mi a’ dol a cheangal seo ri cuspair rèiteachadh PHP-FPM. Cò nach d’ fhuair eòlas air slaodachadh pròiseasar co-dhiù aon uair - air laptop, inneal brìgheil no frithealaiche sònraichte. Cuimhnich air sgèileadh tricead CPU? Tha na roghainnean sin rim faighinn airson Faodaidh nix agus Windows coileanadh siostam agus freagairteachd a leasachadh le bhith ag atharrachadh suidheachadh smeòrach a’ phròiseasar bho àithne air coileanadh*. An turas seo, dèanamaid coimeas eadar na tuairisgeulan agus coimhead air na rudan a tha coltach riutha:
riaghlaiche = aireamh - sgèileadh fiùghantach air tricead pròiseasar a rèir an luchd gnàthach. Leum gu sgiobalta chun tricead as àirde agus an uairsin ga lughdachadh mar a bhios amannan neo-ghnìomhachd ag àrdachadh.
riaghladair = conservative = sgèile tricead fiùghantach a rèir an luchd gnàthach. A 'meudachadh agus a' lùghdachadh tricead nas rèidh na ondemand.
Riaghladair = coileanadh - tha tricead an-còmhnaidh aig a’ char as àirde.
Airson mion-fhiosrachadh, faic
Faic na rudan a tha coltach? Bha mi airson an coimeas seo a shealltainn gus toirt a chreidsinn dhut gu bheil e nas fheàrr a chleachdadh pm statach airson PHP-FPM.
Airson paramadair riaghlaiche pròiseasar coileanaidh a’ cuideachadh le bhith ag àrdachadh coileanadh gu sàbhailte leis gu bheil e cha mhòr gu tur an urra ri crìoch CPU an fhrithealaiche. A bharrachd air an seo, gu dearbh, tha feartan ann cuideachd leithid teòthachd, cosgais bataraidh (ann an laptop) agus frith-bhuaidhean eile bho bhith a ’ruith a’ phròiseasar gu cunbhalach aig 100%. Bidh an suidheachadh coileanaidh a’ dèanamh cinnteach à coileanadh pròiseasar as luaithe. Leugh, mar eisimpleir, mu dheidhinn
A’ cleachdadh pm static gus an coileanadh frithealaiche as àirde a choileanadh
Roghainn PHP-FPM pm statach gu mòr an urra ris a’ chuimhne an-asgaidh air an fhrithealaiche. Ma tha cuimhne ìosal, tha e nas fheàrr taghadh àithne no Fiùghantach. Air an làimh eile, ma tha cuimhne agad, faodaidh tu manaidsear pròiseas PHP a sheachnadh le bhith a 'suidheachadh pm socrach gu comas an fhrithealaiche as àirde. Ann am faclan eile, ma tha a h-uile càil air a thomhas gu math, feumaidh tu a stèidheachadh pm.statach chun na h-ìre as àirde de phròiseasan PHP-FPM a ghabhas cur gu bàs, gun a bhith a’ cruthachadh dhuilgheadasan le cuimhne ìosal no tasgadan. Ach chan eil e cho àrd is gu bheil e a’ faighinn thairis air na pròiseasairean agus a’ cruinneachadh dòrlach de ghnìomhachd PHP-FPM a’ feitheamh ri bhith air an cur an gnìomh.
Anns an dealbh gu h-àrd, tha am frithealaiche air pm = statach agus pm.max_children = 100, agus bheir seo suas mu 10 GB a-mach às an 32 a tha ri fhaighinn. Thoir aire do na colbhan comharraichte, tha a h-uile dad soilleir an seo. Anns an dealbh-sgrìn seo bha timcheall air 200 neach-cleachdaidh gnìomhach (barrachd air 60 diog) ann an Google Analytics. Aig an ìre seo, tha timcheall air 70% de phròiseasan cloinne PHP-FPM fhathast leisg. Tha seo a’ ciallachadh gu bheil PHP-FPM an-còmhnaidh air a shuidheachadh chun na h-ìre as àirde de ghoireasan frithealaiche ge bith dè an trafaic a th’ ann an-dràsta. Bidh pròiseas leisg a’ feitheamh ri stùcan trafaic agus a’ freagairt sa bhad. Chan fheum thu feitheamh gus pm cruthaichidh e pròiseasan cloinne agus an uairsin cuiridh iad crìoch orra nuair a thig an ùine gu crìch pm.process_idle_timeout. Shuidhich mi an luach gu math àrd pm.max_requestsoir is e frithealaiche obrach a tha seo gun aoidion cuimhne ann am PHP. Faodaidh tu a stàladh pm.max_requests = 0 le statach ma tha thu gu tur misneachail ann an sgriobtaichean PHP a tha ann agus san àm ri teachd. Ach tha e nas fheàrr na sgriobtaichean ath-ruith thar ùine. Suidhich àireamh mhòr de dh'iarrtasan, oir tha sinn airson cosgaisean pm neo-riatanach a sheachnadh. Mar eisimpleir, co-dhiù pm.max_requests = 1000 - a rèir meud pm.max_clann agus an àireamh de dh'iarrtasan gach diog.
Tha an dealbh-sgrìn a’ sealltainn an àithne
top -bn1 | grep php-fpm
Cuin a chleachdas tu pm ondemand agus fiùghantach
Ma chleachdas tu pm Fiùghantach, tha mearachdan mar seo a’ tachairt:
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
Feuch ri am paramadair atharrachadh, cha tèid a’ mhearachd air falbh, mar
PM Fiùghantach agus gu sònraichte àithne is dòcha gum bi e feumail ma tha grunn amaran PHP-FPM agad. Mar eisimpleir, bidh thu a’ toirt aoigheachd do ghrunn chunntasan cPanel no grunn làraich-lìn ann an diofar amaran. Tha frithealaiche agam le, can, 100+ cunntasan cpanel agus timcheall air 200 raon, agus cha shàbhail pm.static no fiùghantach mi. Chan eil agad ach an seo àithne, às deidh a h-uile càil, bidh còrr air dà thrian de làraich-lìn a’ faighinn glè bheag de thrafaig, no às aonais, agus le àithne tuitidh a h-uile pròiseas cloinne dheth, a shàbhaileas tòrr cuimhne dhuinn! Gu fortanach, mhothaich luchd-leasachaidh cPanel seo agus shuidhich iad an luach gu bunaiteach àithne. Roimhe sin, nuair a bha am bun-bheachd Fiùghantach, cha robh PHP-FPM freagarrach airson frithealaichean co-roinnte trang idir. Tha mòran air a chleachdadh suPHP, oir pm Fiùghantach cuimhne caitheamh eadhon le amaran leisg agus cunntasan cPanel PHP-FPM. Nas coltaiche, ma tha an trafaic math, cha bhith thu air aoigheachd air frithealaiche le àireamh mhòr de amaran PHP-FPM (aoigheachd co-roinnte).
co-dhùnadh
Ma tha thu a’ cleachdadh PHP-FPM agus gu bheil an trafaic agad trom, manaidsearan pròiseas àithne и Fiùghantach airson PHP-FPM bidh cuibhreachadh cuibhrichte mar thoradh air an àrdachadh bunaiteach aca. Tuig an siostam agad agus rèitich pròiseasan PHP-FPM a rèir comas an fhrithealaiche as àirde. A 'chiad seata pm.max_clann a rèir cleachdadh pm as àirde Fiùghantach no àithne, agus an uairsin àrdaich an luach seo gu ìre far am bi an cuimhne agus am pròiseasar ag obair gun a bhith cus luchdachadh. Mothaichidh tu sin le pm statach, leis gu bheil a h-uile càil nad chuimhne, bidh spìcean trafaic ag adhbhrachadh nas lugha de spìcean CPU thar ùine, agus bidh cuibheasachd luchd-frithealaidh is CPU a’ fàs rèidh. Tha meud pròiseas cuibheasach PHP-FPM an urra ris an t-seirbheisiche lìn agus feumar rèiteachadh làimhe, agus mar sin tha manaidsearan pròiseas nas fèin-ghluasadach Fiùghantach и àithne - nas mòr-chòrdte. Tha mi an dòchas gun robh an artaigil feumail.
ÙRACHADH Clàr slat-tomhais air a chur ris
Source: www.habr.com