Ny dikan-teny tsy voarindra amin'ity lahatsoratra ity dia navoaka tamin'ny voalohany
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
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
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
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..
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
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
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
Source: www.habr.com