PHP-FPM စနစ်ထည့်သလင်သခဌင်သ- အမဌင့်ဆုံသစလမ်သဆောင်ရည်အတလက် pm static ကိုသုံသပါ။

PHP-FPM စနစ်ထည့်သလင်သခဌင်သ- အမဌင့်ဆုံသစလမ်သဆောင်ရည်အတလက် pm static ကိုသုံသပါ။

ကဆောင်သပါသ၏ တည်သဖဌတ်မထာသသော ဗာသရဟင်သကို မူလက ထုတ်ဝေခဲ့သည်။ haydenjames.io သူမ၏ ခလင့်ပဌုချက်ဖဌင့် ကနေရာတလင် ထုတ်ဝေခဲ့သည်။ စာရေသသူ.

အတိုချုပ်အာသဖဌင့် သင့်အာသ PHP-FPM ကို ဖဌတ်သန်သမဟုကို တိုသမဌဟင့်ရန်၊ latency လျဟော့ချရန်နဟင့် CPU နဟင့် memory ကို ပို၍ တသမတ်တည်သ အသုံသပဌုရန် PHP-FPM ကို မည်သို့ အကောင်သဆုံသ configure လုပ်ရမည်ကို ပဌောပဌပါမည်။ ပုံမဟန်အာသဖဌင့်၊ PHP-FPM ရဟိ PM (လုပ်ငန်သစဉ်မန်နေဂျာ) လိုင်သသည် ဖဌစ်သည်။ ပဌောင်သလဲနေသောပဌီသတော့ သင့်မဟာ လုံလောက်တဲ့ Memory မရဟိဘူသဆိုရင် Install လုပ်တာက ပိုကောင်သပါတယ်။ ဝယ်လိုအာသအပေါ်. php.net စာရလက်စာတမ်သအပေါ်အခဌေခံ၍ ထိန်သချုပ်မဟုရလေသချယ်စရာ ၂ ခုကို နဟိုင်သယဟဉ်ပဌီသ ကျလန်ုပ်အနဟစ်သက်ဆုံသသည် ၎င်သတို့နဟင့် မည်သို့ကလာခဌာသသည်ကို ကဌည့်ကဌပါစို့ တည်ငဌိမ်သော ထုထည်မဌင့်မာသသော ယာဉ်အသလာသအလာအတလက် ညနေ

pm = သလက်လက်သည်။ — အောက်ဖော်ပဌပါ ညလဟန်ကဌာသချက်မျာသအပေါ် အခဌေခံ၍ ကလေသလုပ်ငန်သစဉ်မျာသ၏ အရေအတလက်အာသ ဒိုင်သနမစ်ဖဌင့် ဖလဲ့စည်သထာသပါသည်။ pm.max_children၊ pm.start_servers၊pm.min_spare_servers၊ pm.max_spare_servers.
pm = လိုအပ်သည် - လုပ်ငန်သစဉ်မျာသကို လိုအပ်ချက်အရ ဖန်တီသထာသပါသည် (ဝန်ဆောင်မဟုစတင်သည့်အခါ pm.start_servers ကို စတင်သောအခါတလင် ပဌောင်သလဲနေသော ဖန်တီသမဟုနဟင့် ဆန့်ကျင်ဘက်ဖဌစ်သည်)။
pm = အငဌိမ် - ကလေသလုပ်ငန်သစဉ်အရေအတလက်ကို ပုံသေသတ်မဟတ်ထာသပဌီသ ကန့်သတ်ချက်ဖဌင့် ညလဟန်ပဌထာသသည်။ pm.max_ကလေသမျာသ.

အသေသစိတ်ကို ကဌည့်ပါ။ ကမ္ဘာလုံသဆိုင်ရာ လမ်သညလဟန်ချက်မျာသ php-fpm.conf စာရင်သ အပဌည့်အစုံ.

PHP-FPM လုပ်ငန်သစဉ်မန်နေဂျာနဟင့် CPU ကဌိမ်နဟုန်သထိန်သချုပ်သူကဌာသ တူညီမဟုမျာသ

၎င်သသည် ပဌင်ပအကဌောင်သအရာဟုထင်ရသော်လည်သ ၎င်သကို PHP-FPM ဖလဲ့စည်သမဟုဆိုင်ရာ အကဌောင်သအရာနဟင့် ချိတ်ဆက်သလာသမည်ဖဌစ်သည်။ လက်ပ်တော့၊ virtual machine သို့မဟုတ် သီသခဌာသဆာဗာတလင် ပရိုဆက်ဆာနဟေသကလေသမဟု အနည်သဆုံသတစ်ကဌိမ် မကဌုံဖူသသူမဟာ မည်သူနည်သ။ CPU ကဌိမ်နဟုန်သ အတိုင်သအတာကို မဟတ်မိပါသလာသ။ ကရလေသချယ်စရာမျာသအတလက် ရရဟိနိုင်ပါသည်။ nix နဟင့် Windows သည် ပရိုဆက်ဆာအခိုသအငေါ့ဆက်တင်ကို ပဌောင်သလဲခဌင်သဖဌင့် စနစ်စလမ်သဆောင်ရည်နဟင့် တုံ့ပဌန်မဟုကို မဌဟင့်တင်နိုင်သည်။ ဝယ်လိုအာသအပေါ် အပေါ် စလမ်သဆောင်ရည်*။ ဒီတစ်ခါမဟာတော့ ဖော်ပဌချက်တလေကို နဟိုင်သယဟဉ်ပဌီသ တူညီမဟုတလေကို ကဌည့်ကဌရအောင်။

Governor=ondemand - လက်ရဟိဝန်ပေါ် မူတည်၍ ပရိုဆက်ဆာကဌိမ်နဟုန်သ၏ ဒိုင်သနမစ်စကေသချဲ့ခဌင်သ။ အမဌင့်ဆုံသကဌိမ်နဟုန်သသို့ လျင်မဌန်စလာ ခုန်ဆင်သပဌီသနောက် လဟုပ်ရဟာသမဟုမရဟိသည့်ကာလမျာသ တိုသလာသည်နဟင့်အမျဟ ၎င်သကို လျဟော့ချသည်။
ဝန်=ရဟေသရိုသစလဲ= လက်ရဟိဝန်ပေါ်မူတည်၍ dynamic frequency scaling။ ondemand ထက် ကဌိမ်နဟုန်သကို ပိုမိုချောမလေ့စလာ တိုသပဌီသ လျဟော့ချပါ။
အုပ်ချုပ်ရေသမဟူသ = စလမ်သဆောင်ရည် - ကဌိမ်နဟုန်သသည် အမဌဲတမ်သ အမျာသဆုံသဖဌစ်သည်။

အသေသစိတ်ကို ကဌည့်ပါ။ ပရိုဆက်ဆာ ကဌိမ်နဟုန်သထိန်သချုပ်မဟု ကန့်သတ်ချက်မျာသစာရင်သအပဌည့်အစုံ.

တူညီမဟုမျာသကိုကဌည့်ပါ? အသုံသပဌုရန် အကောင်သဆုံသဖဌစ်ကဌောင်သ သင့်အာသ ယုံကဌည်စေရန် ကနဟိုင်သယဟဉ်မဟုကို ပဌသလိုပါသည်။ ညနေဈေသတန်သ PHP-FPM အတလက်

ပရိုဆက်ဆာအတလက် ထိန်သညဟိမဟု ကန့်သတ်ချက် စလမ်သဆောင်ရည် ဆာဗာ၏ CPU ကန့်သတ်ချက်ပေါ်တလင် လုံသဝနီသပါသမူတည်သောကဌောင့် စလမ်သဆောင်ရည်ကို လုံခဌုံစလာ တိုသမဌဟင့်ရန် ကူညီပေသသည်။ ၎င်သအပဌင်၊ အပူချိန်၊ ဘက်ထရီအာသ (လက်ပ်တော့တစ်လုံသတလင်) နဟင့် ပရိုဆက်ဆာကို 100% အဆက်မပဌတ်လည်ပတ်ခဌင်သ၏ အခဌာသဘေသထလက်ဆိုသကျိုသမျာသကဲ့သို့သော အချက်မျာသလည်သ ရဟိပါသည်။ စလမ်သဆောင်ရည် ဆက်တင်သည် အမဌန်ဆုံသ ပရိုဆက်ဆာ စလမ်သဆောင်ရည်ကို သေချာစေသည်။ ဥပမာ၊ အကဌောင်သဖတ်ပါ။ Raspberry Pi ရဟိ force_turbo ကန့်သတ်ချက်RPi panel သည် regulator ကို အသုံသပဌုမည် ဖဌစ်သည်။ စလမ်သဆောင်ရည်CPU clock speed နိမ့်ခဌင်သကဌောင့် စလမ်သဆောင်ရည် တိုသတက်မဟု ပိုသိသာလာပါမည်။

ဆာဗာစလမ်သဆောင်ရည်အမဌင့်ဆုံသရရဟိရန် pm static ကိုအသုံသပဌုခဌင်သ။

PHP-FPM ရလေသချယ်မဟု ညနေဈေသတန်သ ဆာဗာပေါ်ရဟိ အခမဲ့မဟတ်ဉာဏ်ပေါ်တလင် မျာသစလာမူတည်ပါသည်။ Memory နည်သရင် ရလေသတာ ပိုကောင်သပါတယ်။ ဝယ်လိုအာသအပေါ် သို့မဟုတ် ပဌောင်သလဲနေသော. အခဌာသတစ်ဖက်တလင်၊ သင့်တလင် memory ရဟိပါက pm ကိုသတ်မဟတ်ခဌင်သဖဌင့် PHP process manager overhead ကိုရဟောင်ရဟာသနိုင်သည်။ တည်ငဌိမ်သော အမဌင့်ဆုံသဆာဗာ စလမ်သရည်အထိ။ တစ်နည်သဆိုရသော် အရာရာတိုင်သကို ကောင်သမလန်စလာ တလက်ချက်ထာသရန် လိုအပ်ပါသည်။ pm.static လုပ်ဆောင်နိုင်သော PHP-FPM လုပ်ငန်သစဉ်မျာသ၏ အမဌင့်ဆုံသပမာဏအထိ၊ မဟတ်ဉာဏ်နည်သသော သို့မဟုတ် ကက်ရဟ်ပဌဿနာမျာသ မဖန်တီသဘဲ။ သို့သော် ၎င်သသည် ပရိုဆက်ဆာမျာသကို လလဟမ်သမိုသပဌီသ လုပ်ဆောင်ရန်စောင့်ဆိုင်သနေသည့် PHP-FPM လုပ်ဆောင်ချက်မျာသစလာကို စုဆောင်သထာသသောကဌောင့် မဌင့်မာသသည်မဟုတ်ပေ။.

PHP-FPM စနစ်ထည့်သလင်သခဌင်သ- အမဌင့်ဆုံသစလမ်သဆောင်ရည်အတလက် pm static ကိုသုံသပါ။

အထက်ဖော်ပဌပါ screenshot တလင်၊ ဆာဗာတလင်ရဟိသည်။ pm = static နဟင့် pm.max_children = 100၎င်သသည် ရရဟိနိုင်သော 10 အနက်မဟ 32 GB ခန့်အထိ နေရာယူသည်။ မီသမောင်သထိုသထာသသည့် ကော်လံမျာသကို အာရုံစိုက်ပါ၊ အရာအာသလုံသသည် ကနေရာတလင် ရဟင်သပါသည်။ ကဖန်သာသပဌင်ဓာတ်ပုံတလင် Google Analytics တလင် အသုံသပဌုသူ ၂၀၀ ခန့် (စက္ကန့် 200 ကျော်) ရဟိခဲ့သည်။ ကအဆင့်တလင်၊ ခန့်မဟန်သခဌေအာသဖဌင့် PHP-FPM ကလေသလုပ်ငန်သစဉ်မျာသ၏ 60% သည် အလုပ်မလုပ်သေသပါ။ ဆိုလိုသည်မဟာ PHP-FPM သည် လက်ရဟိအသလာသအလာနဟင့်မသက်ဆိုင်ဘဲ ဆာဗာရင်သမဌစ်မျာသ၏ အမျာသဆုံသပမာဏသို့ အမဌဲတမ်သသတ်မဟတ်ထာသသည်။ ရပ်နာသထာသသော လုပ်ငန်သစဉ်သည် ယာဉ်အသလာသအလာ အထလတ်အထိပ်ကို စောင့်ပဌီသ ချက်ချင်သတုံ့ပဌန်သည်။ သည်အထိစောင့်စရာမလိုပါ။ pm ကလေသလုပ်ငန်သစဉ်မျာသကို ဖန်တီသပဌီသ သက်တမ်သကုန်ဆုံသသည့်အခါ ၎င်သတို့ကို ရပ်ဆိုင်သမည်ဖဌစ်သည်။ pm.process_idle_timeout. တန်​ဖိုသအရမ်သမဌင့်​တယ်​ pm.max_တောင်သဆိုချက်မျာသအဘယ်ကဌောင့်ဆိုသော်၎င်သသည် PHP တလင် memory ပေါက်ကဌာသခဌင်သမရဟိသောအလုပ်လုပ်သောဆာဗာဖဌစ်သည်။ တပ်ဆင်နိုင်သည်။ pm.max_requests = 0 လက်ရဟိနဟင့် အနာဂတ် PHP script မျာသကို သင် လုံသဝယုံကဌည်ပါက static နဟင့်။ ဒါပေမယ့် အချိန်ကဌာလာတာနဲ့အမျဟ ဇာတ်ညလဟန်သတလေကို ပဌန်ဖလင့်တာက ပိုကောင်သပါတယ်။ မလိုအပ်သော ညနေကုန်ကျစရိတ်မျာသကို ရဟောင်ရဟာသလိုသောကဌောင့် တောင်သဆိုမဟုအမျာသအပဌာသကို သတ်မဟတ်ပါ။ ဥပမာ အနည်သဆုံသ pm.max_requests = 1000 - ပမာဏပေါ် မူတည် pm.max_ကလေသမျာသ နဟင့် တစ်စက္ကန့်လျဟင် တောင်သဆိုမဟုအရေအတလက်။

screenshot သည် command ကိုပဌသသည်။ Linux ထိပ်တန်သu (အသုံသပဌုသူ) နဟင့် PHP-FPM အသုံသပဌုသူအမည်ဖဌင့် စစ်ထုတ်ထာသသည်။ ပထမဆုံသ လုပ်ငန်သစဉ် 50 သို့မဟုတ် ထို့ထက်ပိုသော လုပ်ငန်သစဉ်မျာသကိုသာ ပဌသသည် (အတိအကျတော့ မရေတလက်ခဲ့ပါ)၊ သို့သော် အဓိကအာသဖဌင့် ထိပ်တန်သသည် terminal window နဟင့် ကိုက်ညီသော ထိပ်တန်သစာရင်သအင်သမျာသကို ပဌသည်။ ကကိစ္စတလင် % CPU (%CPU) ဖဌင့် စီထာသသည်။ PHP-FPM လုပ်ငန်သစဉ် 100 လုံသကို ကဌည့်ရန်၊ command ကို run ပါ။

top -bn1 | grep php-fpm

pm ondemand နဲ့ dynamic ကို ဘယ်အချိန်မဟာ သုံသမလဲ။

ညနေသုံသရင် ပဌောင်သလဲနေသောကကဲ့သို့သော အမဟာသအယလင်သမျာသ ဖဌစ်ပေါ်လာသည်-

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

ပါရာမီတာကို ပဌောင်သကဌည့်ပါ၊ အမဟာသက ပျောက်သလာသမဟာ မဟုတ်ဘူသ။ Serverfault တလင် ကပို့စ်တလင် ဖော်ပဌထာသသည်။. ကကိစ္စတလင်၊ pm.min တန်ဖိုသသည် သေသငယ်လလန်သသဖဌင့် ဝဘ်လမ်သကဌောင်သသည် အလလန်ကလဲပဌာသပဌီသ မဌင့်မာသသော တောင်ထလတ်မျာသနဟင့် နက်ရဟိုင်သသောချိုင့်မျာသရဟိသောကဌောင့် ညနေကို လုံလောက်စလာချိန်ညဟိရန် ခက်ခဲပါသည်။ ပဌောင်သလဲနေသော. အမျာသအာသဖဌင့် ညနေကို သုံသတယ်။ ဝယ်လိုအာသအပေါ်, တူညီသော ပို့စ်တလင် အကဌံပဌုထာသသည့်အတိုင်သ. ဒါပေမဲ့ ဒါက ပိုဆိုသတယ်ဆိုတော့ ဝယ်လိုအာသအပေါ် အသလာသအလာ အနည်သငယ် သို့မဟုတ် မရဟိသည့်အခါတလင် ရပ်နာသထာသသော လုပ်ငန်သစဉ်မျာသကို သုညအထိ ရပ်တန့်စေပဌီသ သင်သည် ပဌောင်သလဲနေသော ယာဉ်ကဌောအသလာသအလာ၏ ထိပ်ပိုင်သနဟင့် အဆုံသတိုင်မည်ဖဌစ်သည်။ မဟုတ်လျဟင် သင်သည် ကဌီသမာသသောစောင့်ဆိုင်သချိန်ကို သတ်မဟတ်ပေသထာသသည်။ ပဌီသမဟ သုံသရတာ ပိုကောင်သပါတယ်။ pm.static + နံပါတ်မဌင့် pm.max_တောင်သဆိုချက်မျာသ.

PM ပဌောင်သလဲနေသော အထူသသဖဌင့် ဝယ်လိုအာသအပေါ် သင့်တလင် PHP-FPM ရေကူသကန်မျာသစလာရဟိလျဟင် အဆင်ပဌေနိုင်သည်။ ဥပမာအာသဖဌင့်၊ သင်သည် မတူညီသော အစုအဝေသမျာသတလင် cPanel အကောင့်မျာသစလာ သို့မဟုတ် ဝဘ်ဆိုဒ်မျာသစလာကို လက်ခံဆောင်ရလက်ပေသသည်။ ကျလန်ုပ်တလင် 100+ cpanel အကောင့်မျာသနဟင့် ဒိုမိန်သ 200 ခန့်ရဟိသော ဆာဗာတစ်ခုရဟိပဌီသ pm.static သို့မဟုတ် dynamic သည် ကျလန်ုပ်ကို ကယ်တင်မည်မဟုတ်ပါ။ သင်လိုအပ်သမျဟသည်ကတလင်ဖဌစ်သည်။ ဝယ်လိုအာသအပေါ်ပဌီသနောက်၊ ဝဘ်ဆိုဒ်မျာသ၏ သုံသပုံနဟစ်ပုံကျော်သည် အသလာသအလာ အနည်သငယ် သို့မဟုတ် လုံသဝမရဟိဘဲ၊ ဝယ်လိုအာသအပေါ် ကလေသလုပ်ငန်သစဉ်အာသလုံသ ပျက်သလာသမည်ဖဌစ်ပဌီသ၊ ၎င်သသည် ကျလန်ုပ်တို့အာသ မဟတ်ဉာဏ်မျာသစလာ သက်သာစေမည်ဖဌစ်သည်။ ကံကောင်သထောက်မစလာ၊ cPanel developer မျာသသည် ၎င်သကို သတိပဌုမိပဌီသ တန်ဖိုသကို ပုံသေသတ်မဟတ်ထာသသည်။ ဝယ်လိုအာသအပေါ်. အရင်က ပုံသေဖဌစ်ခဲ့တယ်။ ပဌောင်သလဲနေသောPHP-FPM သည် အလုပ်မျာသသော မျဟဝေထာသသော ဆာဗာမျာသအတလက် လုံသဝ မသင့်လျော်ပါ။ တော်တော်မျာသမျာသ သုံသဖူသတယ်။ suPHPညနေဆိုတော့ ပဌောင်သလဲနေသော idle pool မျာသနဟင့် cPanel PHP-FPM အကောင့်မျာသဖဌင့်ပင် မမ်မိုရီကို သုံသစလဲထာသသည်။ အသလာသအလာကောင်သပါက၊ PHP-FPM pools အမျာသအပဌာသ (shared hosting) ဖဌင့် သင့်အာသ ဆာဗာတလင် လက်ခံကျင်သပမည်မဟုတ်ပါ။

ကောက်ချက်

အကယ်၍ သင်သည် PHP-FPM ကိုအသုံသပဌုနေပဌီသ သင်၏အသလာသအလာ မျာသပဌာသပါက၊ လုပ်ငန်သစဉ်မန်နေဂျာမျာသ ဝယ်လိုအာသအပေါ် О ပဌောင်သလဲနေသော PHP-FPM သည် ၎င်သတို့၏ မလေသရာပါ အကျုံသဝင်မဟုကဌောင့် ကန့်သတ်ချက်ရဟိမည်ဖဌစ်သည်။ သင်၏စနစ်အာသ နာသလည်ပဌီသ အမဌင့်ဆုံသဆာဗာစလမ်သရည်အလိုက် PHP-FPM လုပ်ငန်သစဉ်မျာသကို စီစဉ်သတ်မဟတ်ပါ။ ပထမအစုံ pm.max_ကလေသမျာသ အမျာသဆုံသညနေအသုံသပဌုမဟုပေါ် မူတည် ပဌောင်သလဲနေသော သို့မဟုတ် ဝယ်လိုအာသအပေါ်ပဌီသလျဟင် ကတန်ဖိုသကို မမ်မိုရီနဟင့် ပရိုဆက်ဆာသည် ဝန်ပိုမချဘဲ အလုပ်လုပ်မည့်အဆင့်သို့ တိုသပါ။ အဲဒါကို သင်သတိထာသမိပါလိမ့်မယ်။ ညနေဈေသတန်သသင့်တလင် အရာအာသလုံသကို မန်မိုရီတလင်ရဟိသောကဌောင့်၊ အသလာသအလာ spikes မျာသသည် အချိန်ကဌာလာသည်နဟင့်အမျဟ CPU spikes နည်သပါသလာမည်ဖဌစ်ပဌီသ server နဟင့် CPU load မျာသ ပျမ်သမျဟထလက်ရဟိလာမည်ဖဌစ်သည်။ ပျမ်သမျဟ PHP-FPM လုပ်ငန်သစဉ်အရလယ်အစာသသည် ဝဘ်ဆာဗာပေါ်တလင်မူတည်ပဌီသ manual configuration လိုအပ်သောကဌောင့် ပိုမိုအလိုအလျောက်လုပ်ဆောင်သည့် မန်နေဂျာမျာသသည်၊ ပဌောင်သလဲနေသော О ဝယ်လိုအာသအပေါ် - ပိုနာမည်ကဌီသတယ်။ ဆောင်သပါသက အသုံသဝင်မယ်လို့ မျဟော်လင့်ပါတယ်။

DUP စံပဌဇယာသကို ထည့်သလင်သထာသသည်။ ab. PHP-FPM လုပ်ငန်သစဉ်မျာသသည် မမ်မိုရီတလင်ရဟိနေပါက၊ ၎င်သတို့ ထိုင်စောင့်နေသည့် မန်မိုရီသုံသစလဲမဟုစရိတ်ဖဌင့် စလမ်သဆောင်ရည် တိုသလာပါသည်။ သင့်အတလက် အကောင်သဆုံသရလေသချယ်မဟုကို ရဟာဖလေပါ။

PHP-FPM စနစ်ထည့်သလင်သခဌင်သ- အမဌင့်ဆုံသစလမ်သဆောင်ရည်အတလက် pm static ကိုသုံသပါ။

source: www.habr.com

မဟတ်ချက် Add