Speed Up Our Websites - Using Parallel Domains to Store Static Contents

ကျွန်တော်တို့ရဲ့ Website နဲ့ Blog တွေကို နည်းအမျိုးမျိုးနဲ့ ပိုမြန်အောင် လုပ်လို့ ရပါတယ်။ အခု ဆွေးနွေးမယ့် အကြောင်းအရာက ဖိုင်တွေကို နေရာခွဲထားပြီး Websiteကို ပိုမြန်အောင် လုပ်နိုင်တဲ့ နည်းလမ်းတွေ ဖြစ်ပါတယ်။ ဒီဆောင်းပါးမှာ Web Browser တွေက Server ကနေ ဖိုင်တွေ ရယူပုံဖော်နည်း၊ ဖိုင်တွေကို ခွဲခြားထားရှိလို့ ရတဲ့ နေရာများ၊ Parallel Download အလုပ်လုပ်ပုံ၊ Sub Domain များ ပြုလုပ်နည်း၊ Hosting မှာ Sub Domain အတွက် Configuration လုပ်ပုံလုပ်နည်း၊ Image Hosting Website များကို ဘယ်လိုသုံးမလဲ၊ Single Domain နဲ့ Subdomain များက Website တစ်ခုရဲ့ အမြန်နှုံးနဲ့ စွမ်းဆောင်ရည် (Speed and Performance) ကို ဘယ်လို အကျိုးသက်ရောက်မှု ရှိတယ် ဆိုတာတွေကို လေ့လာရမှာပါ။

 

How Web Browsers Download Content from the Hosts?

Web Browser တွေအနေနဲ့ Hostname တစ်ခုကနေ လိုအပ်တဲ့ Resources (အရင်းအမြစ် - HTML, CSS, JavaScripts, Content စသည်) တွေကို ရယူတဲ့အခါမှာ အားလုံးကို တစ်ခါတည်း ဆွဲယူပြသတာ မဟုတ်ပါဘူး။ အများဆုံး ဆွဲယူနိုင်သလောက်ကို အလီလီ ဆွဲယူပြီး User ကို ပြပေးတာ ဖြစ်ပါတယ်။ ပိုရှင်းအောင် အခုလို လေ့လာ ကြည့်နိုင်ပါတယ်။

ဆွဲယူမည့် အကြိမ်အရေအတွက် = စုစုပေါင်း Resources / တစ်ကြိမ်လျှင် ရယူနိုင်သည့် ပမာဏ

အဲဒါကြောင့် Web Browser တစ်ခုဟာ Hostname တစ်ခုကနေ တစ်ကြိမ်မှာ Resource 4 ခုကိုပဲ ဆွဲယူနိုင်တယ်ဆိုရင် Resource 100 ရှိတဲ့ စာမျက်နှာတစ်ခုကို ပုံဖော်ဖို့အတွက် စုစုပေါင်း 25 ကြိမ် ဆွဲယူရမှာ ဖြစ်ပါတယ်။

စုစုပေါင်း ဆွဲယူရမည့် အကြိမ်ပေါင်း = 100 Resources / 4 Resources per time = 25 ကြိမ်

ဒီဥပမာမှာ တစ်ကြိမ်ဆွဲယူဖို့အတွက် ကြာချိန်ကို ထည့်တွက် မထားသေးပါဘူး။ User ရဲ့ အင်တာနက်ကြည့်ဆော့ဖ်၀ဲ အမျိုးအစား၊ အင်တာနက်လိုင်း အမြန်နှုံးနဲ့ Image, Script ဖိုင်တွေရဲ့ အရွယ်အစား၊ ပမာဏတွေအပေါ် ထည့်မစဉ်းစားထားပါဘူး။ Resource လေးခုကို တစ်ကြိမ်ရယူဖို့အတွက် 0.1 စက္ကန့် ကြာတယ်ဆိုရင် Resource 100 ပါတဲ့ စာမျက်နှာတစ်ခုလုံးကို ပုံဖော်ဖို့အတွက် စုစုပေါင်းကြာချိန်ကို အခုလို အကြမ်းဖျင်း ဆက်တွက်နိုင်ပါတယ်။

စာမျက်နှာတစ်ခုကို ပုံဖော်ရန် စုစုပေါင်း ကြာချိန် 
= စုစုပေါင်း ဆွဲယူရမည့် အကြိမ် x တစ်ကြိမ်အတွက် ကြာချိန်
= 25 ကြိမ် x 0.1 စက္ကန့်
= 2.5 စက္ကန့်

အဲဒီအတွက်ကြောင့် ဒီဥပမာမှာ ဆိုရင် User အနေနဲ့ အနည်းဆုံး 2.5 စက္ကန့် အထက်ကြာအောင် စောင့်ပြီးမှ အဲဒီစာမျက်နှာ တစ်ခုလုံးကို အပြည့်အ၀ မြင်ရမှာပါ။ တကယ့် လက်တွေ့မှာတော့ ဒီထက်ပိုကြာဖို့ ရှိနိုင်ပါတယ်။

 

Modern Browsers & Progressive Enhancement

Web Browser က စာမျက်နှာမှာ ပါရှိတဲ့ Resource တွေကို Hostname ကနေ အဆက်မပြတ် ဒေါင်းလုတ် ရယူနေရင်း တစ်ပြိုင်နက်တည်းမှာ ရသမျှ အစိတ်အပိုင်းတွေကို User မြင်တွေ့ရအောင် ပုံဖော်ပြသ နေပါတယ်။ ဒါကို Progressive Enhancement လို့ ခေါ်ပါတယ်။ Firefox, Chrome, Safari နဲ့ Opera လို Modern web browser တွေမှာ ပိုမြင်ရမှာပါ။ IE6 လို browser အဟောင်းတွေကတော့ Progressive Enhancement ကို ရမှာ မဟုတ်ပါဘူး။ စာမျက်နှာ တစ်ခုလုံးမှာပါတဲ့ Resource တွေအကုန် မရမခြင်း User အနေနဲ့ အဖြူရောင် ကွက်လပ်ကြီးကို မြင်နေရမှာပါ။ User အများစုက သူတို့သုံးနေတဲ့ Browser တွေအကြောင်းကို Web Deveper, Designer, Professional တွေလောက် မသိကြပါဘူး။ User အများစုက ၀က်ဘ်ဆိုက်တစ်ခု မြန်တယ်၊ နှေးတယ် ဆုံးဖြတ်တဲ့အခါမှာ သူတို့ သုံးနေတဲ့ Web Browser ကို ထည့်မစဉ်းစားတတ်ကြပါဘူး။ Web professional တွေအနေနဲ့ အဲဒီအချက်ကို အမြဲတမ်း ဂရုစိုက်နေဖို့ လိုအပ်ပါတယ်။ အလုပ်လာအပ်တဲ့ လုပ်ငန်းရှင်တွေနဲ့ Web site user တွေကို Web browser တွေရဲ့ မတူညီတဲ့ သဘာ၀တွေကို နားလည်အောင် ဥပမာတွေနဲ့ နှိုင်းယှဉ် ရှင်းပြဖို့ လိုအပ်ပါတယ်။

Parallel Hosting & Downloading

နောက်ဆုံးပေါ် Web Browser (အင်တာနက်ကြည့် ဆော့ဖ်ပဲ) တွေဟာ Wep Page (အင်တာနက် စာမျက်နှာ) တစ်ခုကို ပုံဖော်ပြသတဲ့အခါ တစ်ကြိမ်မှာ Hostname လေးခုကနေ ငါးခုအထိ ဆွဲယူ (Parallel Downloading Capability) ပုံဖော်ပြသပေးနိုင်ပါတယ်။ ဆိုလိုတာက domain-A.com, domain-B.com, domain-C.com, domain-D.com စသည်ဖြင့် Hostname လေးခုကနေ ငါးခုအထိမှာ ထားရှိတဲ့ ဖိုင်တွေကို တစ်ပြိုင်တည်း ဆွဲယူပြီး ပြသပေးနိုင်တာပါ။ ဥပမာ - အင်တာနက်စာမျက်နှာမှာ ပါရှိတဲ့ အကြောင်းအရာတွေကိုတော့ ကိုယ့်ရဲ့ www.my-domain.com မှာပဲထားပြီး ကျန်တဲ့ Resources တွေဖြစ်တဲ့ - jQuery ကို Google Code, Image တွေကို Google Picasa, Flickr, ImageShack, Photo Bucket စတဲ့ ပုံတွေ အခမဲ့ သိမ်းဆည်းလို့ရတဲ့ နေရာတွေမှာ ခွဲထားတာမျိုး ဖြစ်ပါတယ်။ အားနည်းချက် အနေနဲ့ - အဲဒီ၀က်ဘ်ဆိုက်တွေ ရပ်သွားတာနဲ့ ကိုယ့်ဖိုင်တွေလည်း ပါသွားမှာ စိုးရိမ်ရပါတယ်။ ဖိုင်တွေကို အွန်လိုင်းမှာ တင်ထားတဲ့အပြင် ကိုယ့်ကွန်ပျူတာမှာ Back Up အမြဲတမ်း လုပ်ထားဖို့လည်း အရေးကြီးပါတယ်။

Multiple Subdomains

နောက်တစ်နည်းကတော့ ကိုယ့်ရဲ့ Domain ကနေပဲ Subdomain တွေ ထပ်ခွဲပြီး ဖိုင်တွေကို မျှေ၀သိမ်းဆည်းတာ ဖြစ်ပါတယ်။ အလွယ်ဥပမာ ပေးရမယ်ဆိုရင် Image, Video စတဲ့ တစ်ကြိမ်တင်ပြီးတာနဲ့ ထပ်ပြောင်းဖို့ မလိုတဲ့ Static ဖိုင်တွေကို static.my-domain.com, CSS, JavaScripts စတဲ့ ဖိုင်တွေကို scripts.my-domain.com, ကျန်တဲ့ Content တွေကိုတော့ www.my-domain.com မှာပဲ သိမ်းဆည်းထားပြီး၊ အဲဒီဖိုင်တွေကို Web page မှာ ပြန်ခေါ်သုံးတာ ဖြစ်ပါတယ်။ တကယ်လို့ ကိုယ့်ရဲ့ ၀က်ဘ်ဆိုက်က အရွယ်အစားကြီးလာပြီး Traffic ပိုများလာလို့ Content Delivery Network (CDN) တွေ သုံးလာရပြီ ဆိုရင်တောင် cdn.my-domain.com, cdn1.my-domain.com စသည်ဖြင့် ဖန်တီးသွားလို့ ရပါတယ်။ Google, Yahoo, Microsoft, FaceBook စတဲ့ ၀က်ဘ်ဆိုက်ကြီးတွေအားလုံးလည်း ဒီနည်းတွေကို သုံးပြီး သူတို့ဆိုက်တွေကို လျှင်မြန်အောင် လုပ်ထားတာပါပဲ။

How Parallel Download Works?

Web Browser အမျိုးအစားနဲ့ Version တွေအပေါ်မူတည်ပြီး - Web Browser တစ်ခုဟာ တစ်ကြိမ်မှာ Hostname တစ်ခုကနေ ဖိုင် ၂ ခု မှ ၆ ခု အထိ ဆွဲယူ (Download) ပေးနိုင်ပါတယ်။ ဥပမာ - အင်တာနက် စာမျက်နှာတစ်ခုမှာ ပုံတွေ၊ CSS နဲ့ JavaScript ဖိုင်တွေနဲ့ Content တွေအပါအ၀င် ဒေါင်းလုတ်ချပြီး ပုံဖော်ပြရမယ့် Resource Link အခု ၂၀ ပါတယ်ဆိုပါစို့။ အဲဒီဖိုင်တွေအားလုံးကို www.my-domain.com/styles/ , www.my-domain.com/scripts/, www.my-domain.com/images/, www.my-domain.com/content/ စသည်ဖြင့် ခွဲသိမ်းထားလို့ စာမျက်နှာကို အပြည့်အစုံ မြင်ရဖို့အတွက် စောင့်ရတဲ့ ကြာချိန်က၊ A စက္ကန့်အထိ ရှိတယ်ဆိုပါစို့။ အဲဒီဖိုင်တွေကိုပဲ styles.my-domain.com, scripts.my-domain.com, images.my-domain.com, www.my-domain.com စသည်ဖြင့် Subdomain တွေမှာ ခွဲသိမ်းပြီး ပုံဖော်ပြသခဲ့မယ်ဆိုရင် အမြန်နှုံးက လေးဆနီးပါး တက်လာပြီး 0.25A စက္ကန့်ပတ်၀န်းကျင်လောက်မှာ ပုံဖော်ပေးနိုင်မှာ သေချာပါတယ်။ ဒီနေရာမှာ Single Domain နဲ့ Subdomain တွေကို သီးသန့် နှိုင်းယှဉ်ပြတာပါ။

Benefits of Subdomains & Parallel Downloading

Web page တစ်ခုမှာ အသုံးပြုရမယ့် Resources အရေအတွက် 10 ခုထက် ကျော်လွန်သွားပြီဆိုတာနဲ့ Host Name တစ်ခုတည်းကနေ ရယူအသုံးပြုတာမျိုး မလုပ်သင့်တော့ပါဘူး။ Sub Domain တွေမှာ ဖြစ်စေ၊ အထက်မှာ ဖော်ပြခဲ့တဲ့ Google Code, Picasa, Flickr, ImageShak စတဲ့ နေရာတွေမှာ ခွဲထားပြီး ဖြစ်စေ ခွဲထားပြီး အသုံးပြုသင့်ပါတယ်။ အဲဒီဆိုက်ကြီးတွေက CDN ပုံစံ အလုပ်လုပ်တာကြောင့် အမြန်နှုံးမှာတော့ စိတ်ချရဖို့ များပါတယ်။ ကျွန်တော်ကတော့ Subdomain တွေမှာ ထားရတာ ပိုသဘောကျပါတယ်။ အခုလို Sub Domain တွေမှာ နေရာခွဲချထားပြီး ရယူခြင်းကြောင့် - Browser တွေရဲ့ Parallel Downloading Capability ကို ထိရောက်စွာ အသုံးပြုနိုင်ခြင်းနဲ့ Resources တွေဟာ ကိုယ့်ရဲ့ Sub Domain တွေမှာ ရှိနေခြင်းကြောင့် စိတ်တိုင်းကျ ထိန်းချုပ်နိုင်ခြင်း စတဲ့ အကျိုးရလာဒ်တွေကို ခံစားရမှာ ဖြစ်ပါတယ်။

စာမျက်နှာ အခက်အခဲရှိတဲ့အတွက် - Subdomain Configuration, Subdomain Hosting နဲ့ WordPress နဲ့ Drupal မှာ Upload Files တွေကို Subdomain တစ်ခု ပေါ်မှာ ဘယ်လိုနေရာချမလဲ ဆိုတာတွေကို အပိုင်း - ၂ - Speed Up Our Websites - Static Contents on WordPress, Drupal and Other Websites မှာ ဆက်လက် ေ၀မျှသွားပါ့မယ်။

Reference and More Info

Add new comment

Similar Articles

Featured Articles