Ua paʻi mua ʻia kahi mana i hoʻoponopono ʻole ʻia o kēia ʻatikala ma
E haʻi wau iā ʻoe i kahi pōkole pehea e hoʻonohonoho pono ai i ka PHP-FPM e hoʻonui i ka throughput, hoʻemi i ka latency, a hoʻohana mau i ka CPU a me ka hoʻomanaʻo. Ma ka maʻamau, ʻo ka laina PM (manakia kaʻina hana) ma PHP-FPM hōʻeuʻeu, a inā ʻaʻole lawa kāu hoʻomanaʻo, a laila ʻoi aku ka maikaʻi o ka hoʻokomo ʻana ondemand. E hoʻohālikelike kākou i nā koho hoʻomalu 2 e pili ana i ka palapala php.net a ʻike i ka ʻokoʻa o kaʻu punahele iā lākou kūpaʻa pm no ke kalaiwa kiʻekiʻe:
pm = dynamic - ua hoʻonohonoho ikaika ʻia ka helu o nā kaʻina keiki e pili ana i nā kuhikuhi aʻe: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = makemake ʻole - hana ʻia nā kaʻina hana ma ke koi (e kūʻē i ka hana hoʻoikaika, ke hoʻomaka ʻia ka pm.start_servers i ka wā e hoʻomaka ai ka lawelawe).
pm = kūmau - ua paʻa ka helu o nā kaʻina hana keiki a hōʻike ʻia e ka ʻāpana pm.max_children.
No nā kikoʻī, e ʻike
Nā mea like ma waena o ka luna kaʻina hana PHP-FPM a me ka mea hoʻoponopono pinepine CPU
ʻIke paha kēia i waho, akā e hoʻopili wau i kēia i ke kumuhana o ka hoʻonohonoho PHP-FPM. ʻO wai ka mea i ʻike ʻole i ka lohi ʻana o ka kaʻina hana ma ka liʻiliʻi hoʻokahi - ma kahi kamepiula, mīkini virtual a i ʻole kikowaena hoʻolaʻa. E hoʻomanaʻo i ka hoʻonui pinepine ʻana o ka CPU? Loaʻa kēia mau koho no Hiki iā nix a me Windows ke hoʻomaikaʻi i ka hana ʻōnaehana a me ka pane ʻana ma o ka hoʻololi ʻana i ka hoʻonohonoho throttle processor mai ondemand maluna o hana*. I kēia manawa, e hoʻohālikelike kākou i nā wehewehe a nānā i nā mea like:
kiaʻāina=ondemand - ka scaling dynamic o ka mīkini hana ma muli o ka ukana o kēia manawa. Lele wikiwiki i ka alapine kiʻekiʻe a laila e hoʻemi i ka piʻi ʻana o nā manawa o ka hana ʻole.
kiaaina=conservative= ka hoʻonui pinepine ʻana ma muli o ka ukana o kēia manawa. Hoʻonui a hoʻemi i ka alapine ma mua o ka ondemand.
Kiaaina = hana — ʻoi aku ka nui o ka pinepine.
No nā kikoʻī, e ʻike
ʻIke i nā mea like? Makemake wau e hōʻike i kēia hoʻohālikelike e hōʻoiaʻiʻo iā ʻoe ʻoi aku ka maikaʻi o ka hoʻohana pm static no PHP-FPM.
No ka mea hoʻoponopono hoʻoponopono kaʻina hana hana kōkua i ka hoʻonui palekana i ka hana no ka mea ʻaneʻane hilinaʻi ʻia i ka palena CPU o ke kikowaena. Ma waho aʻe o kēia, ʻoiaʻiʻo, aia kekahi mau mea e like me ka mahana, ka uku pākaukau (i loko o kahi kamepiula) a me nā hopena ʻaoʻao ʻē aʻe o ka holo mau ʻana i ka mea hana ma 100%. ʻO ka hoʻonohonoho hana e hōʻoia i ka hana wikiwiki loa. E heluhelu, no ka laʻana, e pili ana
Ke hoʻohana nei i ka pm static e hoʻokō i ka hana kikowaena kiʻekiʻe
PHP-FPM koho pm static hilinaʻi nui i ka hoʻomanaʻo manuahi ma ke kikowaena. Inā haʻahaʻa ka hoʻomanaʻo, ʻoi aku ka maikaʻi o ke koho ondemand ai ole ia, hōʻeuʻeu. Ma ka ʻaoʻao ʻē aʻe, inā loaʻa iā ʻoe ka hoʻomanaʻo, hiki iā ʻoe ke pale i ka luna kaʻina hana PHP ma luna o ke kau ʻana i ka pm kūpaʻa i ka hiki ke kikowaena kikowaena. I nā huaʻōlelo ʻē aʻe, inā helu maikaʻi nā mea āpau, pono ʻoe e hoʻokumu pm.static i ka nui loa o nā kaʻina hana PHP-FPM hiki ke hoʻokō ʻia, me ka hana ʻole i nā pilikia me ka hoʻomanaʻo haʻahaʻa a i ʻole ka hūnā. ʻAʻole naʻe i kiʻekiʻe loa e hoʻoulu ai i nā mea hana a hōʻiliʻili i kahi pūʻulu o nā hana PHP-FPM e kali nei e hoʻokō ʻia..
Ma ka screenshot ma luna, ua loaʻa i ka server pm = static a pm.max_children = 100, a ke lawe nei kēia ma kahi o 10 GB mai loko mai o ka 32 i loaʻa. Ma kēia kiʻi paʻi kiʻi ma kahi o 200 mea hoʻohana ikaika (ʻoi aku ma mua o 60 kekona) ma Google Analytics. Ma kēia pae, ma kahi o 70% o nā kaʻina hana keiki PHP-FPM ʻaʻole mau. 'O ia ho'i, ua ho'onohonoho mau 'ia ka PHP-FPM i ka nui loa o nā kumuwaiwai kikowaena me ka nānā 'ole i ke ka'a o kēia manawa. Ke kali nei ke kaʻina hana ʻole no ka piʻi ʻana o ke kaʻa a pane koke. ʻAʻole pono ʻoe e kali a hiki pm e hana i nā kaʻina hana keiki a laila hoʻopau iā lākou ke pau ka manawa pm.process_idle_timeout. Hoʻonoho wau i ka waiwai i ke kiʻekiʻe loa pm.max_requestsno ka mea, he kikowaena hana kēia me ka hoʻomanaʻo ʻole i ka PHP. Hiki iā ʻoe ke hoʻouka pm.max_requests = 0 me static inā hilinaʻi loa ʻoe i nā palapala PHP e kū nei a me ka wā e hiki mai ana. Akā ʻoi aku ka maikaʻi o ka hana hou ʻana i nā palapala i ka manawa. E hoʻonoho i ka nui o nā noi, no ka mea makemake mākou e pale i nā koina pm pono ʻole. No ka laʻana, ma ka liʻiliʻi loa pm.max_requests = 1000 - ma muli o ka nui pm.max_children a me ka helu o nā noi i kekona.
Hōʻike ka screenshot i ke kauoha
top -bn1 | grep php-fpm
I ka manawa e hoʻohana ai i ka pm ondemand a me ka ikaika
Inā hoʻohana ʻoe i ka pm hōʻeuʻeu, loaʻa nā hewa e like me kēia:
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
E ho'āʻo e hoʻololi i ka parameter, ʻaʻole e hele ka hewa, e like me
PM hōʻeuʻeu a keu hoʻi ondemand hiki ke kōkua inā loaʻa iā ʻoe nā kolamu PHP-FPM he nui. No ka laʻana, hoʻokipa ʻoe i nā moʻokāki cPanel he nui a i ʻole nā pūnaewele lehulehu i nā loko like ʻole. Loaʻa iaʻu kahi kikowaena me, ʻōlelo, 100+ cpanel moʻokāki a ma kahi o 200 mau kikowaena, a pm.static a i ʻole dynamic ʻaʻole e hoʻopakele iaʻu. ʻO nā mea āu e pono ai ma ʻaneʻi ondemand, ma hope o nā mea a pau, ʻoi aku ma mua o ʻelua hapakolu o nā pūnaewele i loaʻa ka liʻiliʻi a ʻaʻole ʻole kaʻa, a me ondemand e hāʻule nā kaʻina hana a pau o nā keiki, kahi e mālama ai iā mākou i ka hoʻomanaʻo nui! ʻO ka mea pōmaikaʻi, ua ʻike nā mea hoʻomohala cPanel i kēia a hoʻonohonoho i ka waiwai i ka paʻamau ondemand. Ma mua, i ka wā i paʻa ai hōʻeuʻeu, ʻAʻole kūpono ʻo PHP-FPM no nā kikowaena kaʻana like ʻole. Nui nā mea i hoʻohana suPHP, no ka mea, pm hōʻeuʻeu pau ka hoʻomanaʻo ʻana me nā loko idle a me nā moʻokāki cPanel PHP-FPM. ʻO ka mea nui, inā maikaʻi ke kaʻa, ʻaʻole ʻoe e hoʻokipa ʻia ma kahi kikowaena me ka nui o nā kolamu PHP-FPM (ka hoʻokipa like).
hopena
Inā ʻoe e hoʻohana ana i ka PHP-FPM a kaumaha kāu kaʻa, nā mana hoʻokele ondemand и hōʻeuʻeu no ka PHP-FPM e kaupalena ʻia ka throughput ma muli o ko lākou poʻo. E hoʻomaopopo i kāu pūnaewele a hoʻonohonoho i nā kaʻina hana PHP-FPM e like me ka nui o ka mana kikowaena. Kau mua pm.max_children ma muli o ka nui o ka hoʻohana pm hōʻeuʻeu ai ole ia, ondemand, a laila e hoʻonui i kēia waiwai i kahi pae kahi e hana ai ka hoʻomanaʻo a me ka mea hana me ka hoʻonui ʻole ʻia. E ʻike ʻoe i kēlā me pm static, no ka mea, loaʻa iā ʻoe nā mea a pau i loko o ka hoʻomanaʻo, e liʻiliʻi ka piʻi ʻana o ke kaʻa kaʻa i ka manawa, a ʻoi aku ka pae o nā awelika ukana a me ka CPU. ʻO ka nui o ke kaʻina hana PHP-FPM e pili ana i ka kikowaena pūnaewele a koi aku i ka hoʻonohonoho manual, no laila ʻoi aku ka nui o nā mana hoʻokele automated hōʻeuʻeu и ondemand - kaulana loa. Manaʻo wau ua pono ka ʻatikala.
MEA HOU Hoʻohui ʻia ka pakuhi hōʻailona
Source: www.habr.com