Setupo sa PHP-FPM: sebelisa pm static bakeng sa ts'ebetso e phahameng

Setupo sa PHP-FPM: sebelisa pm static bakeng sa ts'ebetso e phahameng

Mofuta o sa lokisoang oa sengoloa sena o phatlalalitsoe qalong haydenjames.io mme e hatisitsoe mona ka tumello ea hae mongoli.

Ke tla u tsamaisa ka bokhutšoane mokhoa o motle oa ho hlophisa PHP-FPM ho eketsa phallo, ho fokotsa latency, le ho sebelisa CPU le memori ka mokhoa o tsitsitseng. Ka ho sa feleng, mohala oa PM (motsamaisi oa tšebetso) ho PHP-FPM o phedisano, 'me haeba u se na mohopolo o lekaneng, joale ho molemo ho kenya se batloang haholo. Ha re bapise likhetho tse 2 tsa taolo tse ipapisitseng le litokomane tsa php.net 'me re bone hore na seo ke se ratang se fapana joang le bona. ee sa fetoleng boemo pm bakeng sa sephethephethe se phahameng:

pm = matla - palo ea lits'ebetso tsa bana e hlophisoa ka matla ho latela litaelo tse latelang: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = litlhoko - lits'ebetso li entsoe ho latela tlhoko (ho fapana le pōpo e matla, ha pm.start_servers e qalisoa ha tšebeletso e qala).
pm = static - palo ea mekhoa ea bana e tsitsitsoe 'me e bontšoa ke parameter pm.max_children.

Bakeng sa lintlha, bona lenane le felletseng la litaelo tsa lefats'e php-fpm.conf.

Ho tšoana pakeng tsa mookameli oa ts'ebetso ea PHP-FPM le molaoli oa frequency oa CPU

Sena se kanna sa utloahala e le ntho e sa reng letho, empa ke tla hokahanya sena le sehlooho sa tlhophiso ea PHP-FPM. Ke mang ea so kang a bona ho fokotseha ha processor bonyane hang - ho laptop, mochini o sebetsang kapa seva e inehetseng. Na u hopola CPU frequency scaling? Likhetho tsena li fumaneha bakeng sa nix le Windows li ka ntlafatsa ts'ebetso ea sistimi le karabelo ka ho fetola processor throttle setting ho tloha se batloang haholo mabapi le tshebetso*. Lekhetlong lena, a re bapiseng litlhaloso 'me re shebe ho tšoana:

'musisi=tlhoko - sekhahla se matla sa maqhubu a processor ho latela mojaro oa hajoale. E qhomela ka potlako ho ea ho makhetlo a mangata ebe oa e fokotsa ha linako tsa ho se sebetse li ntse li eketseha.
'musisi=mohatelli= dynamic frequency scaling ho ipapisitsoe le mojaro oa hajoale. E eketsa le ho fokotsa maqhubu ka thelelo ho feta kamoo ho hlokahalang.
'Musisi = ts'ebetso - makhetlo a mangata kamehla.

Bakeng sa lintlha, bona lenane le felletseng la liparamente tsa processor frequency regulator.

Le bona lintho tse tšoanang? Ke ne ke batla ho bontša papiso ena ho u kholisa hore ho molemo ho e sebelisa pm static bakeng sa PHP-FPM.

Bakeng sa parameter ea processor regulator tshebetso e thusa ho eketsa ts'ebetso ka mokhoa o sireletsehileng hobane e batla e ipapisitse le moeli oa CPU oa seva. Ho phaella ho sena, ho boetse ho na le lintlha tse kang mocheso, tefiso ea betri (ka laptop) le litla-morao tse ling tsa ho sebetsa processor kamehla ho 100%. Litlhophiso tsa ts'ebetso li netefatsa ts'ebetso ea processor e potlakileng haholo. Bala, ho etsa mohlala, ka force_turbo parameter ho Raspberry Pi, eo karolo ea RPi e tla sebelisa regulator ka eona tshebetso, moo ntlafatso ea ts'ebetso e tla bonahala haholoanyane ka lebaka la lebelo le tlase la oache ea CPU.

Ho sebelisa pm static ho fihlela ts'ebetso e phahameng ea seva

Khetho ea PHP-FPM pm static haholo-holo ho itšetlehile ka memori ea mahala ho seva. Haeba mohopolo o le tlase, ho molemo ho khetha se batloang haholo kapa phedisano. Ka lehlakoreng le leng, haeba u na le mohopolo, u ka qoba mookameli oa ts'ebetso ea PHP ka ho beha pm ee sa fetoleng boemo ho isa boemong bo phahameng ba seva. Ka mantsoe a mang, haeba ntho e 'ngoe le e' ngoe e baloa hantle, u lokela ho theha pm.static ho fihlela boholo ba lits'ebetso tsa PHP-FPM tse ka etsoang, ntle le ho baka mathata ka memori e tlase kapa cache. Empa ha e phahame hoo e sithabetsang li-processor mme e bokella bongata ba ts'ebetso ea PHP-FPM e emetseng ho phethoa..

Setupo sa PHP-FPM: sebelisa pm static bakeng sa ts'ebetso e phahameng

Setšoantšong se ka holimo, seva e na le pm = static le pm.max_children = 100, 'me sena se nka hoo e ka bang 10 GB ho tsoa ho tse fumanehang 32. Ela hloko litšiea tse totobalitsoeng, ntho e 'ngoe le e' ngoe e hlakile mona. Setšoantšong sena ho ne ho e-na le basebelisi ba ka bang 200 ba sebetsang (ho feta metsotsoana e 60) ho Google Analytics. Boemong bona, hoo e ka bang 70% ea lits'ebetso tsa bana tsa PHP-FPM e ntse e sa sebetse. Sena se bolela hore PHP-FPM e lula e behiloe ho palo e kholo ea lisebelisoa tsa seva ho sa tsotelehe sephethephethe sa hajoale. Ts'ebetso e sa sebetseng e emela tlhoro ea sephethephethe ebe e arabela hanghang. Ha ua tlameha ho ema ho fihlela pm e tla theha lits'ebetso tsa bana ebe e li felisa ha nako e fela pm.process_idle_timeout. Ke behile boleng holimo haholo pm.max_requestshobane sena ke seva se sebetsang se se nang ho lutla memori ho PHP. U ka kenya pm.max_requests = 0 ka static haeba o ts'epa ka botlalo mangolong a PHP a teng le a nakong e tlang. Empa ho molemo ho khutlisetsa lingoloa ka nako. Beha palo e kholo ea likopo, hobane re batla ho qoba litšenyehelo tse sa hlokahaleng tsa pm. Ka mohlala, bonyane pm.max_requests = 1000 - ho itšetlehile ka bongata pm.max_children le palo ea likopo motsotsoana.

Setšoantšo sa skrini se bontša taelo Linux top, e tlhotliloeng ke u (mosebelisi) le lebitso la mosebelisi la PHP-FPM. Ke lits'ebetso tsa pele tse 50 feela tse bonts'itsoeng (ha kea bala hantle), empa ha e le hantle holimo ho bonts'a lipalo-palo tse holimo tse kenang fensetereng ea terminal. Tabeng ena, e arotsoe ka % CPU (% CPU). Ho bona lits'ebetso tsohle tsa 100 PHP-FPM, tsamaisa taelo:

top -bn1 | grep php-fpm

Nako ea ho sebelisa pm odemand le dynamic

Haeba u sebelisa pm phedisano, liphoso tse kang tsena lia etsahala:

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

Leka ho fetola parameter, phoso e ke ke ea fela, joalo ka e hlalositsoe posong ena ho Serverfault. Tabeng ena, boleng ba pm.min bo ne bo le nyane haholo, 'me kaha sephethephethe sa marang-rang se fapana haholo' me se na le litlhōrō tse phahameng le liphula tse tebileng, ho thata ho fetola ka ho lekaneng pm. phedisano. Hangata pm e sebelisoa se batloang haholo, joalo ka ha ho eletsoa posong e ts'oanang. Empa sena se mpe le ho feta, hobane se batloang haholo e emisa lits'ebetso tse sa sebetseng ho fihlela ho zero ha sephethephethe se fokola kapa se le sieo, 'me u ntse u tla qetella u e-na le phetoho e kholo ea sephethephethe. Ntle le haeba, ha e le hantle, u beha nako e kholo ea ho leta. 'Me joale ho molemo ho e sebelisa pm.static + palo e phahameng pm.max_requests.

PM phedisano haholo-holo se batloang haholo e ka ba molemo haeba u na le matamo a mangata a PHP-FPM. Mohlala, o amohela li-account tsa cPanel tse ngata kapa liwebosaete tse ngata matamong a fapaneng. Ke na le seva se nang le, re re, li-account tsa 100+ cpanel le libaka tse ka bang 200, 'me pm.static kapa esita le matla a ke ke a mpholosa. Seo u se hlokang mona ke se batloang haholo, ka mor'a tsohle, ho feta karolo ea bobeli ho tse tharo ea liwebsaete li amohela sephethephethe se fokolang kapa ha se na letho, 'me ka se batloang haholo lits'ebetso tsohle tsa bana li tla oa, tse tla re boloka mohopolo o mongata! Ka lehlohonolo, bahlahisi ba cPanel ba hlokometse sena mme ba beha boleng ho ba kamehla se batloang haholo. Nakong e fetileng, ha kamehla e ne e le phedisano, PHP-FPM e ne e sa tšoanelehe bakeng sa li-server tse arolelanoang ho hang. Ba bangata ba sebelisitse suPHP, hobane pm phedisano memori e senyehileng leha e na le matamo a sa sebetseng le li-account tsa cPanel PHP-FPM. Mohlomong, haeba sephethephethe se le setle, u ke ke ua amoheloa ho seva se nang le palo e kholo ea matamo a PHP-FPM (ho arolelana ho arolelanoa).

fihlela qeto e

Haeba u sebelisa PHP-FPM mme sephethephethe sa hau se boima, balaoli ba ts'ebetso se batloang haholo и phedisano bakeng sa PHP-FPM e tla be e lekanyelitsoe ho feta ka lebaka la bokaholimo ba bona ba tlhaho. Utloisisa sistimi ea hau mme u lokise lits'ebetso tsa PHP-FPM ho latela boholo ba seva. Sete ea pele pm.max_children ho latela boholo ba tšebeliso ea pm phedisano kapa se batloang haholo, ebe o eketsa boleng bona ho isa boemong boo memori le processor li tla sebetsa ntle le ho imeloa. O tla hlokomela seo ka pm static, kaha u na le ntho e 'ngoe le e' ngoe mohopolong, ho phahama ha sephethephethe ho tla baka li-spikes tse fokolang tsa CPU ha nako e ntse e ea, 'me li-server le li-CPU li tla theoha. Ka karolelano boholo ba ts'ebetso ea PHP-FPM bo itšetlehile ka seva sa marang-rang 'me bo hloka tlhophiso ea matsoho, kahoo batsamaisi ba ts'ebetso ba iketselitseng ba phedisano и se batloang haholo - e tsebahalang haholo. Ke tšepa hore sehlooho seo se ne se le molemo.

PUSELETSO E kentse chate ea benchmark ab. Haeba lits'ebetso tsa PHP-FPM li le mohopolong, ts'ebetso e eketseha ka litšenyehelo tsa tšebeliso ea mohopolo moo ba lutseng le ho ema. Iphumanele khetho e ntle ka ho fetisisa.

Setupo sa PHP-FPM: sebelisa pm static bakeng sa ts'ebetso e phahameng

Source: www.habr.com

Eketsa ka tlhaloso