ဆောင်းပါးလမ်းညွှန်
မြန်နှုန်းက အသက်ပါ။ ဝက်ဘ်ဆိုက်တစ်ခုဟာ စက္ကန့်ပိုင်းလေးတောင် နောက်ကျကျန်ခဲ့ရင်တောင် အသုံးပြုသူတွေက လှည့်ထွက်သွားကြပါလိမ့်မယ်။
အဲဒါကြောင့် HestiaCP PHP ကို အားကိုးတဲ့ ဝက်ဘ်ဆိုက်တိုင်းရဲ့ အောင်မြင်မှု ဒါမှမဟုတ် ကျရှုံးမှုအတွက် OPcache ကို အကောင်းဆုံးဖြစ်အောင် လုပ်ဆောင်ခြင်းဟာ အရေးကြီးပါတယ်။
OPcache ဆိုတာ ဘာလဲ။
OPcache သည် PHP တွင် built-in bytecode caching engine တစ်ခုဖြစ်သည်။
၎င်း၏ လုပ်ဆောင်ချက်မှာ ရိုးရှင်းပါသည်။ စုစည်းထားသော PHP script ကို မှတ်ဉာဏ်တွင် cache လုပ်ပါ၊ ၎င်းကို ပြန်လည်ဝင်ရောက်သည့်အခါ ပြန်လည် compile လုပ်မည့်အစား cache ကို တိုက်ရိုက်ခေါ်ယူပါ။
၎င်းက ဝဘ်ဆိုက်တုံ့ပြန်မှုအမြန်နှုန်းကို တိုးတက်ကောင်းမွန်စေပြီး CPU ဝန်ထုပ်ဝန်ပိုးကို လျှော့ချပေးကာ ဆာဗာဖိအားကို ချက်ချင်းလျော့ကျစေပါသည်။
PHP တရားဝင်စာရွက်စာတမ်းများအရ-
"OPcache သည် script compilation ထပ်နေခြင်းကို ရှောင်ရှားခြင်းဖြင့် execution အချိန်ကို လျှော့ချပေးခြင်းဖြင့် သိသာထင်ရှားသော စွမ်းဆောင်ရည်တိုးတက်မှုများကို ပေးစွမ်းသည်။"
အတိုချုပ်ပြောရရင် OPcache ဆိုတာ PHP accelerator တစ်ခုပါ။
HestiaCP မှာ OPcache ကို ဘာကြောင့် optimize လုပ်သင့်တာလဲ။

HestiaCP သည် လူအများစု VPS သို့မဟုတ် dedicated server များကို စီမံခန့်ခွဲရန် အသုံးပြုသည့် ပေါ့ပါးသော control panel တစ်ခုဖြစ်သည်။
OPcache ကို default အားဖြင့် enable လုပ်ထားပေမယ့် parameter တွေက conservative ဖြစ်လေ့ရှိပါတယ်။
ချိန်ညှိမှုများမရှိပါက စွမ်းဆောင်ရည်တိုးတက်မှုမှာ အကန့်အသတ်ရှိလိမ့်မည်။
ဥပမာ:
cores ၄ ခုနှင့် memory 8GB ရှိသော server တွင် default OPcache memory သည် 64MB သာရှိပြီး cached files အရေအတွက်မှာ 4000 သာရှိသည်။
ဒါက အလတ်စားအတွက်ပါ WordPress ဝက်ဘ်ဆိုက်တစ်ခုအတွက်၊ ၎င်းသည် ရိုးရှင်းစွာ မလုံလောက်ပါ။
ရလဒ်အနေဖြင့် cache ကို အဆက်မပြတ်ရှင်းလင်းနေသောကြောင့် စွမ်းဆောင်ရည်သည် အကြိမ်ကြိမ်အတက်အကျဖြစ်စေသည်။
လက်ရှိ OPcache အခြေအနေကို စစ်ဆေးပါ
အောက်ပါ command ကို run ပါ။
php -i | grep opcache.enable
အောက်ပါနှင့်ဆင်တူသော ရလဒ်များကို သင်တွေ့ရပါမည်-
- opcache.enable => On: ဆိုလိုတာက PHP-FPM မှာ OPcache ကို enable လုပ်ထားပြီးသားပါ။
- opcache.enable_cli => ပိတ်ထားသည်: command-line mode တွင် ဖွင့်မထားပါ။
- opcache.enable_file_override => ပိတ်ထားသည်: ဖိုင် override လုပ်ဆောင်ချက်ကို ဖွင့်မထားပါ။
ဆိုလိုသည်မှာ OPcache သည် အလုပ်လုပ်နေပြီဖြစ်သော်လည်း optimization လုပ်ရန်နေရာရှိနေသေးသည်။
PHP configuration ဖိုင်များကို တည်းဖြတ်ပါ
HestiaCP မှာ PHP configuration file path က ပုံမှန်အားဖြင့် အောက်ပါအတိုင်း ဖြစ်ပါတယ်။
/etc/php/8.x/fpm/php.ini
CLI မုဒ်ကိုဖွင့်ရန်-
/etc/php/8.x/cli/php.ini
[opcache] အပိုင်းကို ရှာဖွေပြီး အောက်ပါ parameter များကို ထည့်သွင်း သို့မဟုတ် ပြင်ဆင်ပါ-
[opcache] ; 启用 OPcache opcache.enable=1 opcache.enable_cli=1 ; 内存与缓存设置 opcache.memory_consumption=256 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=10000 ; 文件更新检测 opcache.validate_timestamps=0 opcache.revalidate_freq=60 ; 其他优化参数 opcache.save_comments=1 opcache.fast_shutdown=1 opcache.enable_file_override=1
ကန့်သတ်ချက်အသေးစိတ်အချက်အလက်များနှင့် အကောင်းဆုံးဖြစ်အောင်ပြုလုပ်ခြင်းဆိုင်ရာယုတ္တိဗေဒ
opcache.memory_consumption=၂၅၆
OPcache သို့ 256MB မန်မိုရီ ခွဲဝေပေးခြင်းသည် အလတ်စားမှ အကြီးစား ဝဘ်ဆိုက်များအတွက် သင့်လျော်ပါသည်။
ဝက်ဘ်ဆိုက်ငယ်လေးတွေအတွက် 128MB သတ်မှတ်နိုင်ပါတယ်။opcache.interned_strings_buffer=၁၆
ထပ်နေသော string များအသုံးပြုမှုကို လျှော့ချရန်အတွက် 16MB string cache ကို ပံ့ပိုးပေးသည်။opcache.max_accelerated_files=၁၀၀၀၀
WordPress + plugin ပတ်ဝန်းကျင်တွင် cache လုပ်ထားသောဖိုင်အရေအတွက်သည် အနည်းဆုံး ၁၀,၀၀၀ ရှိရန် အကြံပြုထားသည်။opcache.revalidate_freq=၆၀
မကြာခဏ I/O ပြုလုပ်ခြင်းကို လျှော့ချရန်အတွက် ဖိုင်များကို စက္ကန့် ၆၀ တိုင်းတွင် အပ်ဒိတ်များ ရှိမရှိ စစ်ဆေးပါသည်။opcache.enable_cli=1
Artisan နှင့် WP-CLI ကဲ့သို့သော command-line tools များကို run ရန်အတွက် CLI caching ကို enable လုပ်ခြင်းသည် သင့်လျော်ပါသည်။opcache.enable_file_override=1
OPcache ကို file system cache ကို သိမ်းပိုက်ခွင့်ပြုပါ၊ ၎င်းသည် disk access ကို ပိုမိုလျှော့ချပေးသည်။- opcache.validate_timestamps=0
- အချိန်နှင့်တပြေးညီ ထောက်လှမ်းခြင်းကို ပိတ်ပါဖိုင်စနစ် I/O ကို လျှော့ချပြီး စွမ်းဆောင်ရည်ကို မြှင့်တင်ပါ။
သို့သော်၊ ဆိုလိုသည်မှာ PHP ဖိုင်များကို ပြုပြင်ပြီးနောက် cache ကို ကိုယ်တိုင်ရှင်းလင်းရမည် (PHP service ကို ပြန်လည်စတင်ရမည်)။
configuration ကို ပြင်ဆင်ပြီးနောက်၊ ပြောင်းလဲမှုများ အသက်ဝင်စေရန် PHP service ကို restart လုပ်ရပါမည်။
sudo systemctl restart php<版本>-fpmဤ parameters များပေါင်းစပ်ခြင်းသည် ဝဘ်ဆိုက်ကို မြင့်မားသော တစ်ပြိုင်နက်တည်းအသုံးပြုမှုများသည့်တိုင် တည်ငြိမ်နေစေပါသည်။
PHP-FPM ဝန်ဆောင်မှုကို ပြန်လည်စတင်ပါ
ပြောင်းလဲမှုများပြုလုပ်ပြီးနောက်၊ ဝန်ဆောင်မှုကို ပြန်လည်စတင်ရန် မမေ့ပါနှင့်-
sudo systemctl restart php8.x-fpm
ထို့နောက် ၎င်းကို ထပ်မံလုပ်ဆောင်ပါ-
php -i | grep opcache
ကန့်သတ်ချက်များကို အပ်ဒိတ်လုပ်ထားကြောင်း အတည်ပြုပြီးပါပြီ။
ထုတ်လုပ်မှုပတ်ဝန်းကျင်များတွင် အကောင်းဆုံးလုပ်ဆောင်မှုများ
ထုတ်လုပ်မှုပတ်ဝန်းကျင်များတွင် OPcache optimization တွင် parameter tuning ထက်ပို၍ပါဝင်သည်။ ၎င်းတွင် အောက်ပါဗျူဟာများလည်း ပါဝင်ပါသည်။
၁။ ဖြန့်ကျက်နေစဉ်အတွင်း cache ကိုရှင်းလင်းပါ
ကုဒ်အပ်ဒိတ်တစ်ခုပြီးတိုင်း OPcache ကို ရှင်းလင်းရမည်၊ မဟုတ်ပါက ဗားရှင်းအဟောင်းကို တင်နိုင်သည်။
CI/CD script မှာ အောက်ပါတွေကို ထည့်နိုင်ပါတယ်။
<?php opcache_reset();
တနည်းအားဖြင့်၊ ၎င်းကို ဖြန့်ကျက်မှုလုပ်ငန်းစဉ်အတွင်း လုပ်ဆောင်ပါ-
systemctl reload php8.x-fpm
၂။ မကြာခဏ သန့်ရှင်းရေးလုပ်ခြင်းကို ရှောင်ကြဉ်ပါ
cache ကို မကြာခဏ ရှင်းလင်းခြင်းသည် စွမ်းဆောင်ရည်ကို ကျဆင်းစေနိုင်သည်။
ပုံမှန်အချိန်အပိုင်းအခြားအလိုက် သန့်ရှင်းရေးလုပ်မည့်အစား ကုဒ်ကို အပ်ဒိတ်လုပ်သည့်အခါတွင်သာ သန့်ရှင်းရေးလုပ်ရန် အကြံပြုထားသည်။
၃။ OPcache အသုံးပြုမှုကို စောင့်ကြည့်ပါ။
`php -i | grep opcache` ကို အသုံးပြု၍ သို့မဟုတ် Opcache Control Panel plugin ကို install လုပ်ခြင်းဖြင့် cache hit rate ကို real time တွင် စစ်ဆေးနိုင်ပါသည်။
၉၅% ကျော်သော ထိခိုက်မှုနှုန်းသည် သင့်တင့်လျောက်ပတ်သော ဖွဲ့စည်းမှုတစ်ခုကို ညွှန်ပြသည်။
Zend ရဲ့ တရားဝင်စွမ်းဆောင်ရည်စမ်းသပ်မှုတွေအရ OPcache ကိုဖွင့်ခြင်းအားဖြင့် PHP script execution speed ကို ၃ ဆအထိ မြှင့်တင်ပေးနိုင်ပြီး CPU usage ကို ၅၀% လျှော့ချပေးနိုင်ပါတယ်။
ဒါက လျှို့ဝှက်ဆန်းကြယ်တဲ့ သီအိုရီမျိုး မဟုတ်ပါဘူး၊ ခိုင်မာတဲ့ အချက်အလက်တွေပါ။
နိဂုံးချုပ်- ကျွန်ုပ်၏အမြင်များနှင့် အဓိကကိုးကားချက်များ
ကျွန်တော့်အမြင်အရ OPcache က ဝက်ဘ်ဆိုက်အတွက် "turbocharger" လိုပါပဲ။ OPcache မရှိရင် PHP က turbocharger မပါတဲ့ ကားတစ်စီးလိုပါပဲ။ ဖြည်းဖြည်းချင်း လည်ပတ်ပြီး လောင်စာဆီကုန်ပါတယ်။
OPcache ကို အကောင်းဆုံးဖြစ်အောင်လုပ်ခြင်းသည် နည်းပညာဆိုင်ရာ အသေးစိတ်အချက်အလက်တစ်ခုသာမက ဝဘ်ဆိုက်လည်ပတ်မှုအတွက် မဟာဗျူဟာကျသော ရွေးချယ်မှုတစ်ခုလည်း ဖြစ်သည်။
အဘယ်ကြောင့်ဆိုသော် မြန်နှုန်းသည် ပြောင်းလဲမှုနှုန်းနှင့် ညီမျှပြီး စွမ်းဆောင်ရည်သည် ယှဉ်ပြိုင်နိုင်စွမ်းနှင့် ညီမျှသောကြောင့်ဖြစ်သည်။
အဓိကကိုးကားချက်- ဝဘ်ဆိုက်တစ်ခုရဲ့ အနာဂတ်ဟာ ၎င်းရဲ့ ကုဒ်ရဲ့ ခမ်းနားမှုပေါ်မှာ မူတည်တာမဟုတ်ဘဲ အသုံးပြုသူတွေ မျက်တောင်ခတ်ဖို့ အချိန်တောင် မရှိလောက်အောင် မြန်မြန်ဆန်ဆန် တုံ့ပြန်နိုင်မှုအပေါ်မှာ မူတည်ပါတယ်။
ထို့ကြောင့် ဆာဗာများသည် ထိရောက်မှုမရှိသော ကွင်းဆက်များတွင် အရင်းအမြစ်များကို အလဟဿဖြစ်စေခြင်းကို ရပ်တန့်ပါ။
သင့်ရဲ့ HestiaCP OPcache ကို အခုပဲ အကောင်းဆုံးဖြစ်အောင်လုပ်ပြီး သင့်ဝက်ဘ်ဆိုက်ကို ပျံသန်းစေလိုက်ပါ။
php.ini မှာ တိုက်ရိုက်ကူးယူအသုံးပြုနိုင်တဲ့ production environment အတွက် အကောင်းဆုံး OPcache configuration template တစ်ခု ရေးပေးစေချင်ပါသလား။
မျှော်လင့်ခြင်း Chen Weiliang ဘလော့ဂ် ( https://www.chenweiliang.com/ "HestiaCP မှာ OPcache ကို ဘယ်လို Optimize လုပ်မလဲ။ Opcode caching နဲ့ PHP code ကို compiling လုပ်ခြင်းဖြင့် သင့်ဝက်ဘ်ဆိုက်ကို fly ဖြစ်စေမယ်" ဆိုတဲ့ ဆောင်းပါးက သင့်အတွက် အထောက်အကူဖြစ်နိုင်ပါတယ်။
ဤဆောင်းပါး၏ link ကိုမျှဝေရန်ကြိုဆိုပါတယ်:https://www.chenweiliang.com/cwl-34197.html
