Fametrahana PHP-FPM: ampiasao pm static ho an'ny fampisehoana ambony indrindra

Fametrahana PHP-FPM: ampiasao pm static ho an'ny fampisehoana ambony indrindra

Ny dikan-teny tsy voarindra amin'ity lahatsoratra ity dia navoaka tamin'ny voalohany haydenjames.io ary navoaka teto raha nahazoana alalana taminy ny mpanoratra.

Holazaiko anao amin'ny fomba fohy ny fomba tsara indrindra hanamboarana PHP-FPM mba hampitomboana ny fidirana, hampihenana ny fahatarana, ary hampiasa tsy tapaka ny CPU sy ny fitadidiana. Amin'ny alΓ lan'ny default, ny tsipika PM (manam-pahefana) ao amin'ny PHP-FPM dia mavitrika, ary raha tsy manana fahatsiarovana ampy ianao, dia tsara kokoa ny mametraka misy mila. Andeha isika hampitaha safidy fanaraha-maso 2 mifototra amin'ny antontan-taratasy php.net ary jereo ny maha-samihafa ny tiako indrindra amin'izy ireo voasakantsakan'ny pm ho an'ny fifamoivoizana be:

pm = dinamika - Ny isan'ny fizotry ny ankizy dia amboarina amin'ny fomba mavitrika mifototra amin'ireto torolΓ lana manaraka ireto: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
pm = ondemand - Ny dingana dia noforonina araka ny fangatahana (mifanohitra amin'ny famoronana mavitrika, rehefa manomboka ny pm.start_servers rehefa manomboka ny serivisy).
pm = static - ny isan'ny fizotran'ny ankizy dia raikitra ary asehon'ny parameter pm.max_children.

Raha mila fanazavana fanampiny dia jereo lisitra feno amin'ny torolΓ lana manerantany php-fpm.conf.

Ny fitoviana eo amin'ny mpitantana ny fizotran'ny PHP-FPM sy ny mpanara-maso matetika ny CPU

Mety ho toa tsy mitombina izany, fa hampifandray izany amin'ny lohahevitry ny PHP-FPM aho. Iza no mbola tsy niaina ny fihenan'ny processeur farafahakeliny indray mandeha - amin'ny solosaina finday, milina virtoaly na mpizara voatokana. Tadidinao ny fampitomboana matetika ny CPU? Ireo safidy ireo dia misy amin'ny Nix sy Windows dia afaka manatsara ny fahombiazan'ny rafitra sy ny fandraisan'anjaran'ny rafitra amin'ny alΓ lan'ny fanovana ny toeran'ny throttle processeur misy mila amin'ny fampisehoana*. Amin'ity indray mitoraka ity, andeha hampitaha ny famaritana ary hijery ny fitoviana:

governora=ondemand - scaling dynamic ny processeur matetika arakaraka ny entana ankehitriny. Mitsambikina haingana mankany amin'ny matetika ambony indrindra ary ahena izany rehefa mitombo ny vanim-potoana tsy mavitrika.
governora=conservative= scaling frequent dinamika miankina amin'ny entana ankehitriny. Mampitombo sy mampihena matetika kokoa noho ny ondemand.
Governora = zava-bita - ny matetika dia ambony indrindra.

Raha mila fanazavana fanampiny dia jereo lisitra feno ny masontsivana regulator frequency processeur.

Jereo ny fitoviana? Te hampiseho ity fampitahana ity aho mba handresen-dahatra anao fa io no tsara indrindra ampiasaina pm static ho an'ny PHP-FPM.

Ho an'ny paramètre regulator processeur fampisehoana manampy amin'ny fampitomboana tsara ny zava-bita satria saika miankina amin'ny fetran'ny CPU an'ny mpizara izany. Ankoatra izany, mazava ho azy, misy ihany koa ny anton-javatra toy ny mari-pana, ny bateria fiampangana (ao amin'ny solosaina findainy) sy ny lafiny hafa ny tsy tapaka ny processeur amin'ny 100%. Ny fandrindrana fampisehoana dia miantoka ny fampandehanana processeur haingana indrindra. Vakio, ohatra, momba ny force_turbo parameter ao amin'ny Raspberry Pi, izay hampiasain'ny tontonana RPi ny mpandrindra fampisehoana, izay ho hita kokoa ny fanatsarana ny fampisehoana noho ny hafainganam-pandehan'ny famantaranandro CPU ambany.

Mampiasa pm static mba hahatratrarana ny fahombiazan'ny mpizara ambony indrindra

PHP-FPM safidy pm static miankina betsaka amin'ny fahatsiarovana maimaim-poana amin'ny mpizara. Raha ambany ny fitadidiana, dia tsara kokoa ny misafidy misy mila na mavitrika. Amin'ny lafiny iray, raha manana fitadidiana ianao dia azonao atao ny misoroka ny mpitantana ny fizotran'ny PHP amin'ny alΓ lan'ny fametrahana pm voasakantsakan'ny amin'ny fahafahan'ny mpizara ambony indrindra. Raha lazaina amin'ny teny hafa, raha kajikajy tsara ny zava-drehetra dia mila mametraka ianao pm.static amin'ny habetsaky ny fizotran'ny PHP-FPM izay azo tanterahina, tsy mamorona olana amin'ny fahatsiarovana ambany na cache. Saingy tsy dia avo loatra ka maharesy ny processeur ary manangona andiana asa PHP-FPM miandry ny famonoana azy..

Fametrahana PHP-FPM: ampiasao pm static ho an'ny fampisehoana ambony indrindra

Ao amin'ny pikantsary etsy ambony, ny mpizara dia manana pm = static ary pm.max_children = 100, ary izany dia maka 10 GB eo ho eo amin'ny 32 misy. Tandremo ireo tsanganana nasongadina, mazava ny zava-drehetra eto. Ao amin'ity pikantsary ity dia misy mpampiasa mavitrika 200 eo ho eo (mihoatra ny 60 segondra) ao amin'ny Google Analytics. Amin'ity ambaratonga ity, manodidina ny 70% amin'ny fizotran'ny ankizy PHP-FPM no mbola tsy miasa. Midika izany fa ny PHP-FPM dia apetraka hatrany amin'ny habetsan'ny loharanon'ny serivera ambony indrindra na inona na inona fifamoivoizana ankehitriny. Misy dingana tsy miasa miandry ny tampon'ny fifamoivoizana ary mamaly avy hatrany. Tsy mila miandry ianao pm dia hamorona dingana ho an'ny ankizy ary hamarana azy ireo rehefa tapitra ny fe-potoana pm.process_idle_time out. Napetrako ho ambony dia ambony ny sanda pm.max_requestssatria ity dia mpizara miasa tsy misy fitadidiana ao amin'ny PHP. Azonao atao ny mametraka pm.max_requests = 0 miaraka amin'ny static raha matoky tanteraka ny script PHP efa misy sy ho avy ianao. Saingy tsara kokoa ny mamerina mamerina ny script rehefa mandeha ny fotoana. Mametraha fangatahana marobe, satria te hiala amin'ny vidin'ny pm tsy ilaina izahay. Ohatra, farafaharatsiny pm.max_requests = 1000 - arakaraka ny habetsahana pm.max_children ary ny isan'ny fangatahana isan-tsegondra.

Ny pikantsary dia mampiseho ny baiko Linux ambony, voasivan'ny u (mpampiasa) sy ny mpampiasa PHP-FPM. Ny dingana 50 voalohany na mihoatra ihany no aseho (tsy voaisa tsara aho), fa ny ambony indrindra dia mampiseho ny antontan'isa ambony izay mifanaraka amin'ny varavarankely terminal. Amin'ity tranga ity dia nalahatra araka ny % CPU (%CPU). Raha te hahita ny fizotran'ny PHP-FPM 100 rehetra dia araho ny baiko:

top -bn1 | grep php-fpm

Rahoviana ny fampiasana pm ondemand sy dynamic

Raha mampiasa pm ianao mavitrika, misy lesoka toy izao:

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

Andramo ny manova ny parameter, ny fahadisoana dia tsy hiala, toy ny voalaza ato amin'ity lahatsoratra momba ny Serverfault ity. Amin'ity tranga ity, kely loatra ny sandan'ny pm.min, ary satria miovaova be ny fifamoivoizana amin'ny Internet ary manana tampon-doha avo sy lohasaha lalina, dia sarotra ny manitsy tsara ny pm. mavitrika. Matetika ny pm no ampiasaina misy mila, araka ny voalaza ao amin'io lahatsoratra io ihany. Mbola ratsy kokoa anefa izany, satria misy mila mamarana ny dingana tsy miasa ho aotra rehefa vitsy na tsy misy fifamoivoizana, ary mbola hiafara amin'ny lohan'ny fiovan'ny fifamoivoizana ianao. Raha tsy hoe, mazava ho azy, mametraka fotoana fiandrasana lehibe ianao. Ary avy eo dia tsara kokoa ny mampiasa pm.static + isa ambony pm.max_requests.

PM mavitrika ary indrindra indrindra misy mila Mety ho azo ampiasaina raha manana dobo PHP-FPM marobe ianao. Ohatra, mampiantrano kaonty cPanel marobe ianao na tranokala marobe amin'ny dobo samihafa. Manana mpizara manana kaonty cpanel 100+ aho ary sehatra 200 eo ho eo, ary tsy hamonjy ahy ny pm.static na koa dynamic. Ny hany ilainao eto dia misy mila, raha ny marina, mihoatra ny roa ampahatelon'ny tranonkala no mahazo fifamoivoizana kely na tsy misy, ary miaraka amin'ny misy mila ny fizotry ny zaza rehetra dia hianjera, izay hamonjy antsika fahatsiarovana be dia be! Soa ihany fa nahatsikaritra izany ireo mpamorona cPanel ary nametraka ny sanda ho default misy mila. Teo aloha, rehefa ny default mavitrika, PHP-FPM dia tsy nety ho an'ny mpizara ifampizarana be atao mihitsy. Maro no efa nampiasa suPHP, satria pm mavitrika fahatsiarovan-tena na dia amin'ny dobo tsy misy dikany sy ny kaonty cPanel PHP-FPM aza. Azo inoana fa raha tsara ny fifamoivoizana, dia tsy hampiantranoina amin'ny lohamilina misy dobo PHP-FPM marobe (fampiantranoana iombonana).

famaranana

Raha mampiasa PHP-FPM ianao ary mavesatra ny fifamoivoizanao, mpitantana ny dingana misy mila ΠΈ mavitrika ho an'ny PHP-FPM dia ho voafetra ny fampandehanan-draharaha noho ny overhead. Fantaro ny rafitrao ary amboary ny fizotran'ny PHP-FPM araka ny fahafahan'ny mpizara ambony indrindra. Sehatra voalohany pm.max_children arakaraka ny fampiasana pm maximum mavitrika na misy mila, ary ampitomboy izany sanda izany ho amin'ny ambaratonga iray izay hiasan'ny fitadidiana sy ny processeur nefa tsy be loatra. Ho hitanao izany miaraka amin'ny pm static, satria manana ny zava-drehetra ao amin'ny fitadidianao ianao, ny fiakaran'ny fifamoivoizana dia hahatonga ny fiakaran'ny CPU ho vitsy kokoa rehefa mandeha ny fotoana, ary hihena ny salan'isa enta-mavesatra amin'ny mpizara sy CPU. Ny salan'isan'ny PHP-FPM dia miankina amin'ny mpizara tranonkala ary mitaky fanitsiana manual, noho izany dia maro kokoa ny mpitantana ny dingana mandeha ho azy mavitrika ΠΈ misy mila - malaza kokoa. Manantena aho fa nahasoa ilay lahatsoratra.

DUP Nampiana tabilao benchmark ab. Raha ao anaty fitadidiana ny fizotran'ny PHP-FPM, dia mitombo ny fahombiazan'ny fanjifana fahatsiarovana izay ipetrahan'izy ireo sy iandrasana. Mitadiava safidy tsara indrindra ho anao.

Fametrahana PHP-FPM: ampiasao pm static ho an'ny fampisehoana ambony indrindra

Source: www.habr.com

Add a comment