Tuhinga Tuhinga
Ko te maha o ngā kaiwhakamahi ōrite ka taea e te tūmau te whakahaere, ehara i te mea e whakawhirinaki ana ki te maha o ngā matua o ia tūmau, engari ki te nui o te mahara e pau ana i ia tukanga.
Ahakoa te āhua whakapataritari i tēnei kōrero, koinei te wheako tūturu me te mamae rawa atu i roto i te umanga whakahaere me te tiaki.
He aha te mahara te arai matua?
He tokomaha te hunga e kite ana i tētahi VPS me tētahi PTM 8-matua me te mahara 24GB, ā, e whakaaro pōhēhē ana ka taea e rātou te whakahaere i ngā rau o ngā tukanga PHP-FPM.
Heoi, ko te mea pono, ko te whakamahinga mahara RSS o tētahi tukanga PHP kotahi ka eke ki te 200MB.
Koinei te hua i whiwhihia mā te whakamātautau tūturu mā te raina whakahau:
ps --no-headers -o rss -p $(pgrep php-fpm) | awk '{sum+=$1} END {print sum/NR/1024 " MB"}'
I roto i te taiao anga matatini me te maha-monomai a HestiaCP , ina koa kāore he arotautanga OPcache, ko te 200MB te mea noa.
Ko te tikanga o tēnei ko te mahara, ehara i te CPU, te rohe pūmau e whakatau ana i te auautanga mōrahi.

Kōnae whirihoranga kua tūtohutia (php-fpm.conf)
pm = dynamic
pm.max_children = 80
pm.start_servers = 16
pm.min_spare_servers = 8
pm.max_spare_servers = 24
pm.max_requests = 500
pm.process_idle_timeout = 10s
request_terminate_timeout = 60s
Te arorau tatau tawhā me te pūtake tautuhinga
| Tawhā whirihoranga | Te tautuhinga uara | Te tātaitanga matua me te pūtake whakatūnga |
|---|---|---|
| pm | dynamic | Mā te aratau hihiri ka taea te tāpiri, te muku rānei i ngā tukanga i runga i ngā whakaritenga ōrite, te whakataurite i te tere urupare me te whakamahinga mahara. |
| pm.max_tamariki | 80 | 24GB te mahara katoa, engari kāore he kernel pūnaha me te MySQL/RedisWhai muri i a Nginx, tata ki te 16GB e toe ana mō te PHP.16,384 MB / 200 MB ≈ 81.9Mā te whakatakoto ki te 80 ka taea te whakakore katoa i te OOM (Out of Memory) i te wā e nui ana te mahi tahi. |
| ngā tūmau_tīmata.pm | 16 | Ka whakatakotoria te whakamahana-mua i te tīmatanga ki te rua te maha o ngā matua CPU (8 matua × 2 = 16) kia taea ai e te ratonga te whakahaere tonu i ngā mahi taketake i muri i te tīmatanga anō. |
| pm.min_spare_servers | 8 | Tautuhia te tatau o te matua CPU ki te 8 matua kia taea ai te whakautu i ngā tono hou i ngā wā iti te waka. |
| pm.max_spare_servers | 24 | Tautuhia kia 3 ngā whakarea o te maha o ngā matua CPU (8 matua × 3 = 24) hei pupuri i te maha o ngā tukanga i muri i te hokinga o te rere o ngā raraunga, kia taea ai te whakahaere i ngā piki me ngā heke ngāwari. |
| pm.max_requests | 500 | Mena ka eke te rahi o tētahi tukanga kotahi ki te 200MB, mā te whakaiti i te maha o ngā tono ki te 500 i mua i te whakangaromanga me te hanga anō ka tere ake te horoi i ngā turuturu mahara ngaro. |
| pm.process_idle_timeout | 10s | 超出 min_spare_servers Ka tukuna aunoatia ngā tukanga mangere, ka whakahokia ki te mahara pūnaha i muri i te 10 hēkona o te kore tono. |
Ngā Tautuhinga Tautoko Matua me ngā Whakaaro Arotau
1. Tikanga ārai-mate pāwera wā-mutunga
request_terminate_timeout = 60s Koinā te kī.
Ka taea e ia te whakamutu ā-ture i ngā tukanga kua mau nā te korenga o te pātengi raraunga, te aukati rānei i te API a te hunga tuatoru.
I taua wā, ko Nginx fastcgi_read_timeout Me pupuri mō te 60 hēkona neke atu rānei, ki te kore ka tae wawe mai ki te kiritaki. 504 Gateway Timeout.
2. Ngā rautaki hei whakakore i ngā aukati mahara
Ko te mōrahi o ngā tukanga tukutahi e 80, ko te tikanga i raro i ngā āhuatanga tukutahi tino nui, ka taea e te pūnaha te whakahaere i te mōrahi o ngā tono HTTP hihiri e 80 i te wā kotahi.
Ki te hiahia koe ki te whakapai ake i te kaha o te tukatuka, me arotahi koe ki te whakaiti i te whakamahinga mahara mō ia tukanga.
- Whakahohe OPcache:在
php.iniWhirihoranga waengaopcache.enable=1Naopcache.memory_consumption=256Ka taea e te keteroki bytecode te whakaiti i te whakamahinga mahara o tētahi tukanga kotahi mai i te 200MB ki te 60~100MB. - Te whakahaere tika o te memory_limit:将
php.iniwaengamemory_limitHe iti noa iho128M或256MHei ārai i ngā tuhinga rerekē takitahimutunga koreHe nui te mahara e pau ana.
Kia heke te whakamahinga mahara o tētahi tukanga ki te 100MB...pm.max_children Ka taea te whakapai ake me te haumaru ki 150 Hei tāpiritanga, kua tata rua te kaha o te mahi tahi.
Ngā tirohanga mana i whakahuatia
E ai ki ngā taunakitanga i roto i te tuhinga Nginx mana :
"Me aroturuki tonu ngā tono FastCGI me ngā tohutohu wā-mutunga hei ārai i te paunga o ngā rauemi."
(Pūtake: Ngā Tuhinga Nginx)
E mārama ana te pukapuka ā-ringa PHP :
"Ka tautuhia e te pm.max_children te maha mōrahi o ngā tukanga tamariki hei waihanga. Koinei te tohutohu tino nui."
(Pūtake: Ngā tuhinga PHP-FPM)
He tino ōrite ēnei tirohanga whai mana ki ā mātou mahi, e whakaatu ana ko te arorau arotautanga ehara i te mea e ahu mai ana i ngā wheako anake, engari i ngā mahi pai paerewa anō hoki.
Whakamutunga: Ōku Tirohanga me ngā Kōrero Matua
I ngā horopaki tere-taurite, ko te CPU te miihini, ko te mahara te tāke wahie, ā, ko PHP-FPM te kaiwhakahaere waka.
Ahakoa te kaha o te mīhini, ki te kore e ranea te rahi o te tāke wahie, e kore te tira waka e haere tawhiti.
Kāore ngā tohunga tūturu e whakamahi noa i ngā tawhā, engari e tatau tika ana i te whakamahinga mahara o ia tukanga hei karo i te moumou me te waipuke.
Ko te uho o te arotautanga ko te kimi i te taurite tino pai me ngā rauemi iti.
Ehara tēnei i te hangarau noa iho, engari he rapunga whakaaro anō hoki.
Nō reira, kati te whakapono "ko te maha o ngā matua te mea e whakatau ana i ngā mea katoa." Ko te mea e tino whakatau ana i te rohenga ōrite ko tō mana whakahaere i te mahara.
Mahihia te mahi me te arotau i tō VPS ki tōna pūmanawa katoa, me te whakamahi pai i ia maturuturunga mahara.
Ko te tumanako, ka whai hua ki a koe te tuhinga "8-core 24GB VPS running out of memory? Extreme tuning of PHP-FPM process pool under HestiaCP" i tohaina ki te blog a Chen Weiliang ( https://www.chenweiliang.com/ ).
Tukuna mai te hononga o tēnei tuhinga: https://www.chenweiliang.com/cwl-34509.html
