သောကြာနေ့ညက rackspace မှာ cloud server ကို လပေးနဲ့ စမ်းကြည့်တယ်။ အဓိကတော့ MZ နဲ့ Ornagai အတွက် server ပေါ့။ အရင်ဆုံး ကိုယ့် blog ကို ကိုယ်တင်တော့ nginx ကို သုံးမယ်ဆိုပြီး ဆုံးဖြတ်ထားလို့ ngix ကို တင်လိုက်တယ်။ php fpm ကို သွင်းလိုက်တယ်။ ပုံမှန် .php file ကို စမ်းကြည့်တယ်။ ရတယ်။ ဒါနဲ့ wordpress တင်ဖို့ လုပ်တော့ စပြီး တိုင်ပတ်တာပဲ။ .htaccess အလုပ်မလုပ်တော့တဲ့ အတွက်ကြောင့် wordpress configure က စပြီး ဂဂျောင်ပါလေရောပေါ့ဗျာ။ သို့ပေမယ့် wordpress website မှာရေးထားတဲ့အတွက်ကြောင့် အဆင်ပြေသွားတယ်။
ဒါပေမယ့် site က နှေးနေတယ်။ တော်တော်လေးကို နှေးနေတာ။ ဘာဖြစ်လို့ နှေးမှန်းမသိဘူး ဖြစ်နေတယ်။ အခုအချိန်တော့ ထင်သလောက် မနှေးတော့ဘူး။ နှေးရခြင်း အကြောင်းက DNS cache က fully update မဖြစ်သေးတာကြောင့်ပါ။ နောက်ပြီး configure တွေ လွဲနေတာကြောင့်လည်း ပါတယ်။ PHP APC နဲ့ ဆို မြန်တယ်ဆိုတာနဲ့ PHP APC ကို သွင်းပြီး wordpress နဲ့ တွဲသုံးလိုက်တာ အရမ်းကို မှန်သွားတယ်။ W3 Plugin က PHP APC ကို support လုပ်ပေးတယ်ဆိုတော့ ဘာမှ ပြင်စရာ မရှိဘူး။
တင်ပြီးတော့ ကိုယ့် site ကို ကိုယ်သဘောကျနေတုန်း သိပ်တောင် မခံလိုက်ဘူး။ ၆ နာရီလောက်ကြာတော့ server down သွားတယ်။ ဘာဖြစ်တာလည်းဆိုတာကို စစ်ကြည့်လိုက်တော့ out of memory ဖြစ်ပြီး php fpm က အလုပ်မလုပ်တော့ဘူး။ ssh လည်း ချိတ်မရတော့ဘူး။ ဘာဆို ဘာမှ လုပ်မရတော့ဘူး။ တော်သေးတာက rackspace ရဲ့ control မှာ restart ချတာ ပါပေလို့ပဲ။ restart ပြန်ချလိုက်ရတယ်။ ကြည့်ရတာ PHP APC က memory တော်တော် စားတဲ့ ပုံပေါ်တယ်။ ( တကယ်တန်း ပြဿနာက PHP APC ကြောင့် မဟုတ်မှန်း နောက်မှ သိရပါသည် ) APC ဖြုတ်ပြီးပေမယ့်လည်း နှေးနေတုန်းပဲ။ ဟိုရှာဒီရှာ ဟိုပြင် ဒီပြင်လုပ်။ file cache တွေလည်း လျှောက်ထည့်။ အရမ်းနှေးနေတုန်းပဲ။
နောက်ဆုံးမှ terminal မှာ free ဆိုတာကို ရိုက်ကြည့်လိုက်တော့ အားပါးပါး 6248 KB (6 MB) ပဲ လွတ်တော့တယ်။ ဒါနဲ့ ဘာကြောင့်လည်းဆိုတာကို ထပ်ပြီး စစ်ကြည့်ဖို့ $ps aux နဲ့ ကြည့်လိုက်တော့ php-fpm တွေ အများကြီး run နေတယ်။ ဒါဆိုသေချာပြီ php-fpm config လွဲကို လွဲနေပြီ။ ဒါနဲ့ /etc/php5/fpm/pool.d/www.conf မှာ ဝင်ကြည့်လိုက်တော့
pm.max_children = 50
pm.start_servers = 25
pm.min_spare_servers = 8
pm.max_spare_servers = 40
idle အဆင့်မှာတင် စစခြင်းကို 25 process တောင် ဝင်ယူလိုက်တာကို။ macbook pro 4GB memory မှာ မသိသာပေမယ့် 512 MB မှာတော့ သိသာသွားပြီ။ အနိမ့်ဆုံး 8 ကနေ အများဆုံး 40 အထိ idle လုပ်ခွင့်ပေးထားတယ်။ php-fpm က process တစ်ခုကို အနည်းဆုံး 11 MB လောက်ယူတယ်။ ဒီတော့ phpfpm စလိုက်တာနဲ့ 25 * 11 = 275 MB လောက် နေရာ ယူပလိုက်ပြီ။ လူ အဝင်များလာရင် 40 ဆိုတော့ 440 MB လောက် အများဆုံး idle အဆင့်မှာ ကျန်ခဲ့ပြီ။ max childer အတွက် php-fpm ကြီးပဲ 550m MB လောက် နေရာယူခွင့်ပေးထားတယ်။
သေချာတာပေါ့။ ဒါကြောင့် နှေးနေတာ ဖြစ်မယ် ဆိုပြီး php-fpm config ကို ဒီလို ပြင်လိုက်တယ်။
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
အဲလိုလည်း ပြင်လိုက်ကော တော်တော်လေးကို မြန်သွားတယ်။ php-fpm က အများဆုံးယူမှ 220 MB ပဲ ရှိတော့တယ်။ အယောက် ၂၀ ထက် ကျော်ရင်တော့ concurrency မှာ ပြဿနာရှိနိုင်ပေမယ့် လက်ရှိ blog တွေ MZ အပါအဝင် အယောက် ၂၀ တပြိုင်တည်းရှိတဲ့ အချိန် တော်တော်ရှားပါတယ်။ start_server ကို ပေးဖို့အတွက် min+[(max-min)/2] ဆိုတဲ့ formula နဲ့ တွက်ပြီး ပေးထားပါတယ်။ အခု ကတော့ server က stable ဖြစ်သွားပြီဆိုတော့ ornagai ကို ပြောင်းဖို့ လုပ်ရမယ်။ ornagai အခြေအနေ ကြည့်ပြီး MZ ကို ပြောင်းဖို့ အတွက် စဉ်းစားရမယ်။
Nginx က တကယ့်ကို မြန်ပါတယ်။ Apache ထက်စာရင် မြန်တာကတော့ အသေအချာပဲ။ အခုလို config ပြင်ထားလိုက်တော့ memory မှာ ပုံမှန် 113876 KB လောက်တော့ free ကျန်နေတယ်။ OS က အလုပ်လုပ်ရတာ အဆင်ပြေတာပေါ့။ 6 MB လောက်နဲ့ OS တစ်ခုလုံး ဘာမှ လုပ်လို့ မရတာ အသေချာပဲ။ unmanagement VPS ကို သုံးတဲ့အခါမှာ သေချာ config လုပ်တတ်ရင် share ထက်စာရင် အများကြီးမြန်ပေမယ့် config မလုပ်တတ်ရင်တော့ share လောက်တောင် အသုံးမကျတာ အမှန်ပါပဲ။ config လုပ်တတ်ဖို့ကလည်း ကိုယ်သုံးတဲ့ OS ရဲ့ command line တွေ သိရအုံးမယ်။ vi ကို သုံးတတ်ရအုံးမယ်။ nginx ကို သုံးရင်းနဲ့ config နည်းနည်းပါးပါး လုပ်တတ်လာသလို သဘောကျလာတာလည်း အမှန်ပါပဲဗျာ။ ကိုယ့် blog အမြန်နှုန်းကို သဘောကျလွန်းလို့ ခဏခဏ စမ်းကြည့်ဖြစ်နေတယ်။ အရင်တုန်းကတော့ ခဏခဏ down လို့ စိတ်ညစ်ရပေမယ့် အခုကတော့ တော်တော်လေးကို အဆင်ပြေသွားပါပြီ။
Leave a Reply