Server and me

သောကြာနေ့ညက 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 လို့ စိတ်ညစ်ရပေမယ့် အခုကတော့ တော်တော်လေးကို အဆင်ပြေသွားပါပြီ။

3 Comments

  1. I hope you will write more about Nginx and difference between its configurations tips and tricks.
    Great your website is now so fast even I am downloading 5MB sized file.

    Congratulations THE blog and its owner on great tech!

  2. tala chan says:

    You site too slow during this week. Cause of mywebfont.app server you should change that somewhere ko saturn

  3. herzcthu says:

    ကိုစေတန် nginx အကြောင်းရေးထားတာတွေ့လို့ စမ်းကြည့်ဖြစ်ပါတယ်။ Ubuntu မှာ အရင်စမ်းဖြစ်ပါတယ်။ တစ်ခုခြင်းကို compile လုပ်တဲ့အခါ အင်ဂျင် အိတ်စ် က အလုပ်လုပ်ပေမယ့် php မှာ error တွေတက်နေပါတယ်။ ဒါနဲ့ပဲစိတ်လျှော့ထားလိုက်ပြီး CentOS မှာစမ်းကြည့်ပါတယ်။ မစမ်းခင် ဂူဂယ်မှာလိုက်ရှာရင်းနဲ့ lnmp ဆိုတာတစ်ခုကိုတွေ့ပါတယ်။ ရေးထားတဲ့သူက သူ့ဆိုဒ်ပေါ်မှာပဲ အဲဒီဟာကိုတင်ထားပေးတာမို့ လုံခြံရေးအတွက်စိတ်ချရပါ့မလားဆိုပြီး မူရင်းဘယ်ကထုတ်လဲဆိုတာကိုပါ လိုက်ရှာဖြစ်ပါတယ်။။နောက်ဆုံးမှာတွေ့တာက lnmp ဆိုတာ တရုတ်က ထုတ်ထားတာဖြစ်ပြီး သူတို့ဆိုဒ်တစ်ခုလုံးကို တရုတ်လိုပဲရေးထားတာတွေ့ရပါတယ်။ ဂူဂယ်ကိုသုံးပြီး ဘာသာပြန်ကြည့်လိုက်တဲ့အခါ အရမ်းလွယ်ကူတယ်ဆိုတာကိုတွေ့ရလို့ အဲဒါကိုစမ်းပြီးသွင်းကြည့်တဲ့အခါ 100KB/s နဲ့ 30KB/s ကြားမှာ တက်လိုက်ကျလိုက်ဖြစ်နေတဲ့လိုင်းနဲ့သွင်းတာ တစ်ညတိတိကြာပါတယ် :)
    Linux,nginx,php,mysql,pureftp, memcache php module, eaccelarator တွေကို တစ်ပြိုင်တည်း စမ်းချင်သူတွေအတွက်ကတော့ အတော်ကိုလွယ်ကူပါတယ်။ တစ်ခုပဲစိုးရိမ်စရာရှိတာက တရုတ်ကထုတ်ထားတာဖြစ်တဲ့အတွက် အဲဒါကိုသုံးပြီး ကိုယ့်ရဲ့ အွန်လိုင်း ဆာဗာကို အလုပ်လုပ်ခိုင်းထားမယ်ဆိုရင် ကိုယ့်အတွက် လုံခြုံရေးနဲ့ပတ်သက်ပြီး ဘယ်လောက်ထိ စိတ်ချရမလဲဆိုတာပါပဲ။ သူကတော့ script လေးတစ်ခုပါပဲ ဒါပေမယ့် ကိုယ့်က ပရိုဂရမ်တွေ မရေးတတ်တော့ နားမလည်ပါဘူး။ ကိုစေတန်အနေနဲ့ အချိန်အားတဲ့အခါ စမ်းကြည့်စေချင်ပါတယ်။
    ဒီမှာ ကြည့်လိုက်ပါ

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.