Disk I/O (disk i/o) သဘောတရား၊ ယေဘုယျ ဆာဗာစွမ်းဆောင်ရည် သိသာထင်ရှားသော သက်ရောက်မှုများကို ဖန်တီးပေးသည်။ ဆာဗာများပေါ်တွင် ဒေတာဖတ်ရှုခြင်းနှင့် စာရေးခြင်းဆိုင်ရာ လုပ်ငန်းစဉ်များကို ရည်ညွှန်းသည့် ဤအယူအဆသည် စနစ်၏အမြန်နှုန်းကို ဆုံးဖြတ်ပေးသည့် အဓိကအကြောင်းရင်းများထဲမှ တစ်ခုဖြစ်ပြီး ၎င်းကို မကြာခဏ လျစ်လျူရှုထားသော်လည်း၊ ဒီနေရာက အတိအကျပဲ။ disk i/o ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း။ နည်းစနစ်များ ပါဝင်လာသည်။ ဤဆောင်းပါးတွင်၊ Disk I/O သည် အဘယ်ကြောင့် အရေးကြီးကြောင်း၊ ၎င်း၏ အားသာချက်များနှင့် အားနည်းချက်များ နှင့် စွမ်းဆောင်ရည် မြှင့်တင်ရန် အဘယ်အရာ လုပ်ဆောင်နိုင်သည်ကို နက်နက်နဲနဲ လေ့လာသုံးသပ်ပါမည်။
Disk I/O ဆိုတာဘာလဲ။
Disk I/O သည် ဆာဗာရှိ သိုလှောင်မှုပမာဏများပေါ်တွင် ဖြစ်ပေါ်သည့် ဖတ်ရှုခြင်းနှင့် ရေးခြင်းဆိုင်ရာ လုပ်ဆောင်ချက်များအားလုံး ပါဝင်သည်။ ရိုးရိုးရှင်းရှင်းပြောရလျှင် သင့်ဆာဗာကို စာကြည့်တိုက်တစ်ခုနှင့် နှိုင်းယှဉ်နိုင်သည်- သင်အချက်အလက်များကို ဖတ်ရှုနိုင်သည် သို့မဟုတ် ရေးနိုင်လေ၊ သင့်စနစ်သည် ပိုမိုထိရောက်လေလေဖြစ်သည်။ Disk I/O ၎င်း၏ မြန်နှုန်းသည် ဒေတာဘေ့စ်မေးမြန်းမှုမှ ဖိုင်လွှဲပြောင်းမှုများအထိ လုပ်ငန်းစဉ်များစွာကို အကျိုးသက်ရောက်စေသည်။
Disk I/O နှင့် ဆာဗာစွမ်းဆောင်ရည်ကြား ဆက်စပ်မှု
CPU၊ RAM နှင့် ကွန်ရက်ချိတ်ဆက်မှုကဲ့သို့သော အစိတ်အပိုင်းများစွာကြောင့် ဆာဗာစွမ်းဆောင်ရည်ကို ထိခိုက်ပါသည်။ သို့သော်၊ သိုလှောင်မှုအလွှာသည် ဤအစိတ်အပိုင်းများ၏ ထိရောက်သောလည်ပတ်မှုတွင် အရေးပါသောအခန်းကဏ္ဍမှ ပါဝင်ပါသည်။ အပလီကေးရှင်းဆာဗာသည် မန်မိုရီမှ ဒေတာကို ဖတ်ရန် သို့မဟုတ် ဒေတာကို ဒစ်ခ်သို့ ရေးလိုသောအခါ၊ တောင်းဆိုမှုများ disk i/o မှတဆင့်ကူးစက်သည်။ မြင့်မားသောဒစ်ဖ်လေနေချိန်များ (I/O latencies) သည် အပလီကေးရှင်းများကို နှေးကွေးစွာလည်ပတ်စေသည် သို့မဟုတ် မမျှော်လင့်ထားသော အမှားအယွင်းများကို ဖြစ်စေသည်။ အဘယ်ကြောင့်ဆိုသော် disk i/o ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း။ သိုလှောင်မှုအလွှာ၏ ထိရောက်သောလုပ်ဆောင်ချက်ကို နည်းလမ်းများဖြင့် သေချာစေသင့်သည်။
အားသာချက်များနှင့် အားနည်းချက်များ
အားသာချက်များ
- မြန်ဆန်သောဒေတာဝင်ရောက်ခွင့်- ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ထားသော disk I/O ဖွဲ့စည်းပုံသည် ဒေတာများကို ပိုမိုမြန်ဆန်စွာ ဖတ်ရှုနိုင်စေပါသည်။
- ပိုမိုကောင်းမွန်သော အရင်းအမြစ်အသုံးချမှု- မြန်နှုန်းမြင့်သည် CPU နှင့် RAM ကို ပိုမိုထိရောက်စွာ လုပ်ဆောင်နိုင်စေပါသည်။ ဒီတော့ ဗိုလ်ချုပ် ဆာဗာစွမ်းဆောင်ရည် တိုးလာသည်။
- ပိုမိုတည်ငြိမ်သော အပလီကေးရှင်းများ- မြင့်မားသော disk latencies ကိုဖယ်ရှားခြင်းဖြင့်၊ သင်သည် တဒင်္ဂနှေးကွေးမှု သို့မဟုတ် ပျက်စီးမှုများကို လျှော့ချနိုင်သည်။
အားနည်းချက်များ
- ကုန်ကျစရိတ်- SSD သို့မဟုတ် NVMe ကဲ့သို့သော မြန်နှုန်းမြင့်ဒစ်များကို အသုံးပြုခြင်းသည် များသောအားဖြင့် ကုန်ကျစရိတ်ကို တိုးစေသည်။
- ဟာ့ဒ်ဝဲ ကန့်သတ်ချက်များ- မားသားဘုတ်ဖွဲ့စည်းပုံ သို့မဟုတ် RAID ကတ်များကြောင့် အချို့သောစနစ်များသည် စွမ်းဆောင်ရည်မြင့်ဒစ်များကို မပံ့ပိုးနိုင်ပါ။
- စီမံခန့်ခွဲမှု ရှုပ်ထွေးမှု- အထူးသဖြင့် RAID ဖွဲ့စည်းမှုပုံစံများ သို့မဟုတ် စီမံခန့်ခွဲထားသော ဒေတာစင်တာပတ်ဝန်းကျင်များတွင် ထပ်လောင်းဖွဲ့စည်းပုံနှင့် စောင့်ကြည့်မှု လိုအပ်နိုင်သည်။
Disc I/O ပြန်လည်ရယူရေးနည်းလမ်းများ
လာကြရအောင် disk i/o ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း။ ၎င်းတို့၏နည်းလမ်းများ။ အောက်တွင် ဆော့ဖ်ဝဲလ်နှင့် ဟာ့ဒ်ဝဲလ် နှစ်မျိုးလုံးအတွက် ဖြေရှင်းချက်များစွာကို သင်ရှာတွေ့နိုင်ပါသည်။
1. SSD နှင့် NVMe ကိုအသုံးပြုခြင်း။
ရိုးရာ HDD များသည် ၎င်းတို့၏ စက်ပိုင်းဆိုင်ရာ အစိတ်အပိုင်းများကြောင့် latency မြင့်မားခြင်းကို ကြုံတွေ့ရနိုင်သည်။ SSD (solid-state drives) နှင့် NVMe drives များသည် latency သိသိသာသာ နည်းပါးပြီး data transfer speeds မြင့်မားသည်။ Statista ၏ အချက်အလက်များအရ ကမ္ဘာတစ်ဝှမ်းရှိ data center များတွင် SSD အသုံးပြုမှုမှာ နှစ်စဉ် ၁၅-၂၀% တိုးလာနေသည်။ ဤပြောင်းလဲမှုသည် ဆာဗာစွမ်းဆောင်ရည် တိုးတက်မှုအတွက် အရေးကြီးသော ရင်းနှီးမြှုပ်နှံမှုဖြစ်သည်။
2. RAID ပြင်ဆင်မှုများ
RAID သည် ဒစ်ခ်ဒရိုက်များစွာ၏ ပေါင်းစပ်မှုတစ်ခုဖြစ်သည်။ RAID 0၊ RAID 1၊ RAID 5 သို့မဟုတ် RAID 10 ကဲ့သို့သော နည်းလမ်းများသည် မတူညီသော လုံခြုံရေးနှင့် စွမ်းဆောင်ရည်အင်္ဂါရပ်များကို ပေးဆောင်သည်။ ဥပမာအားဖြင့်၊ သင်သည် RAID 0 ဖြင့် စာဖတ်ခြင်းနှင့် ရေးခြင်းအမြန်နှုန်းကို တိုးမြှင့်နိုင်သော်လည်း သင်၏ဒေတာကို RAID 1 ဖြင့် အရန်သိမ်းနိုင်သည်။ သင့်လိုအပ်ချက်အရ မှန်ကန်သော RAID ကိုရွေးချယ်ခြင်း၊ disk i/o ၎င်းသည် အရေးကြီးသော ခြေလှမ်းတစ်ခုဖြစ်သည်။
အသုံးများသော RAID ရွေးချယ်မှုများ
- RAID-0- data striping method ကိုအသုံးပြုခြင်းဖြင့် စာဖတ်ခြင်းနှင့် ရေးခြင်းအမြန်နှုန်းကို တိုးစေသည်။ ဒါပေမယ့် ထပ်ပြီး မကမ်းလှမ်းပါဘူး။
- RAID-1- mirroring ဖြင့် မလိုအပ်သော စနစ်တစ်ခုကို ဖန်တီးသည် ။ သို့သော် သင်သည် disk အမြန်နှုန်းဖြင့် single disk စွမ်းဆောင်ရည်ကို ရရှိသည်။
- RAID 10- ၎င်းသည် အကွဲကွဲအပြားပြားနှင့် အလင်းပြန်ခြင်း နှစ်မျိုးလုံးကို လုပ်ဆောင်ခြင်းဖြင့် အမြန်နှုန်းနှင့် ထပ်နေသောအကြား မျှတသောအဖြေကို ပေးဆောင်သည်။
3. File System နှင့် Operating System ဆက်တင်များ
EXT4၊ XFS သို့မဟုတ် Btrfs ကဲ့သို့သော မတူညီသောဖိုင်စနစ်များသည် အချို့သောအသုံးပြုမှုအခြေအနေများတွင် မတူညီသောစွမ်းဆောင်ရည်တန်ဖိုးများကို ပေးဆောင်သည်။ လည်ပတ်မှုစနစ် kernel ဆက်တင်များကို သင်လည်း ပြင်ဆင်နိုင်သည် (ဥပမာ I/O အစီအစဉ်ဆွဲသူ) disk i/o ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း။ ပေးနိုင်ပါသည်။ ဥပမာအားဖြင့်၊ သင်၏ဆာဗာ၏ ရည်ရွယ်အသုံးပြုမှုအရ "deadline" သို့မဟုတ် "cfq" ကဲ့သို့သော မတူညီသောအချိန်ဇယားများကို ရွေးချယ်သင့်သည်။
4. Storage Caching
ဒေတာဖတ်ရှုခြင်းနှင့် ရေးသားခြင်းအတွက် ကက်ရှ်ကို အသုံးပြုခြင်းသည် latency ကို အလွန်လျှော့ချပေးသည်။ ဥပမာအားဖြင့်၊ Linux တွင် RAM သည် ဒစ်ခ်ဒေတာကို ခေတ္တသိမ်းဆည်းထားပြီး မကြာခဏဝင်ရောက်ထားသောဒေတာများကို အလွန်လျင်မြန်စွာပြန်ယူနိုင်စေပါသည်။ ဤနည်းလမ်းသည် database applications များတွင် အထူးထိရောက်သည်။
5. Virtualization Platform Optimization
သင်သည် virtual machines သို့မဟုတ် containers ကိုအသုံးပြုနေပါက၊ သင်သည် virtualization အလွှာ၏ disk ပေါ်လစီများနှင့် drive ဆက်တင်များကိုစစ်ဆေးသင့်သည်။ KVM နှင့် VMware ကဲ့သို့သော ပလပ်ဖောင်းများတွင် “VirtIO” ဒရိုက်ဘာများကို အသုံးပြုခြင်း၊ disk i/o စွမ်းဆောင်ရည်ကို သိသိသာသာ မြှင့်တင်ပေးနိုင်ပါတယ်။
အစားထိုးနည်းလမ်းများနှင့် မတူညီသောရွေးချယ်မှုများ
သမားရိုးကျနည်းလမ်းများအပြင်၊ ဆော့ဖ်ဝဲလ်သတ်မှတ်ထားသော သိုလှောင်မှု (Software-Defined Storage) နှင့် cloud-based block storage ဝန်ဆောင်မှုများသည်လည်း လူကြိုက်များသော အခြားရွေးချယ်စရာများဖြစ်သည်။ ၎င်းတို့သည် သင့်ဒေတာများကို နေရာများစွာတွင် သိမ်းဆည်းထားနိုင်ပြီး အတိုင်းအတာတစ်ခုအထိ စီမံခန့်ခွဲရန် ခွင့်ပြုပေးလေ့ရှိသည်။ ဤနည်းအားဖြင့် ဒေတာလုံခြုံရေး နှစ်ခုစလုံး တိုးလာပါသည်။ ဆာဗာစွမ်းဆောင်ရည် ဝယ်လိုအားအရ အတိုင်းအတာတစ်ခုအထိ ဖြစ်လာသည်။
- Cloud Storage- AWS EBS၊ Google Persistent Disk သို့မဟုတ် Azure Disk ကဲ့သို့သော ဝန်ဆောင်မှုများဖြင့် မြင့်မားသောစွမ်းဆောင်ရည်နှင့် လိုက်လျောညီထွေရှိသော စွမ်းဆောင်ရည်ကို သင်ရနိုင်သည်။
- Software Defined Storage (SDS)- Ceph နှင့် GlusterFS ကဲ့သို့သော ဖြေရှင်းချက်များသည် သင့်အား မတူညီသော ဆာဗာများမှ disk များကို ပေါင်းစည်းနိုင်ပြီး အတိုင်းအတာတစ်ခုအထိ သိမ်းဆည်းနိုင်သော တစ်ခုတည်းသော သိုလှောင်မှုအစုကို ဖန်တီးနိုင်စေပါသည်။
- RAM Disk- ဝေဖန်ပိုင်းခြားမှုနည်းသော၊ မကြာခဏဝင်ရောက်ထားသောဖိုင်များအတွက် RAM ပေါ်တွင် virtual disk ကိုဖန်တီးခြင်း။ disk i/o ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း။ ၎င်းသည် နှစ်သက်သော နည်းလမ်းများထဲမှ တစ်ခုဖြစ်သည်။
ခိုင်မာသော ဥပမာများနှင့် စာရင်းအင်းများ
- ဒေတာဘေ့စ်စွမ်းဆောင်ရည် စမ်းသပ်ခြင်း- PostgreSQL သို့မဟုတ် MySQL ကဲ့သို့သော လူကြိုက်များသော ဒေတာဘေ့စ်များသည် NVMe SSD များကို အသုံးပြုသောအခါ မေးမြန်းမှုအမြန်နှုန်း ၄၀-၆၀% လျော့ကျသွားကြောင်း သတင်းပို့ထားသည်။
- သိမ်းဆည်းခြင်း ဥပမာ- Redis သို့မဟုတ် Memcached ကို အသုံးပြု၍ ပြုလုပ်ထားသည်။ disk i/o ဤအမြန်နှုန်းများကို လျှော့ချခြင်းဖြင့် ဝဘ်အပလီကေးရှင်းများတွင် စာမျက်နှာတင်ချိန်ကို ၃၀% အထိ မြန်ဆန်စေနိုင်ကြောင်း သတိပြုမိပါသည်။
- Virtualization Layer- VMware virtualization environments များတွင် “Paravirtual SCSI” (PVSCSI) driver ကို enable လုပ်ခြင်းဖြင့် disk latency ကို 20% အထိ လျှော့ချပေးပါသည်။
ပြည်တွင်းနှင့် ပြည်ပလင့်ခ်များ
ပိုမိုလေ့လာလိုပါက၊ ဆာဗာများရှိ disk I/O ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းဆိုင်ရာ ကျွန်ုပ်တို့၏ဆောင်းပါးကိုလည်း ကြည့်ရှုနိုင်ပါသည်။ တရားဝင်သတင်းရပ်ကွက်များအတွက်လည်း Linux Kernel Block Layer Documentation သင့်အား ပိုမိုနက်ရှိုင်းသော နည်းပညာဆိုင်ရာ အချက်အလက်များစွာကို ပေးစွမ်းပါမည်။
အမေးများသောမေးခွန်းများ (FAQ)
- မေးခွန်း- Disk I/O ပြဿနာများကို မည်သို့သိရှိနိုင်မည်နည်း။ပြန်ကြားချက်- “iostat”၊ “vmstat” နှင့် “iotop” ကဲ့သို့သော ကိရိယာများကို အသုံးပြုခြင်း disk i/o ချက်ချင်းလက်ငင်း latency နှင့် data transfer rate ကဲ့သို့သော တန်ဖိုးများနှင့် မက်ထရစ်များကို ခြေရာခံနိုင်သည်။
- မေးခွန်း- ဆာဗာစွမ်းဆောင်ရည်ကို မြှင့်တင်ရန် မည်သည့် disk အမျိုးအစားကို သင်အကြံပြုသနည်း။ပြန်ကြားချက်- "SSD" သို့မဟုတ် "NVMe" ကိုရွေးချယ်ခြင်း ဆာဗာစွမ်းဆောင်ရည် အပြုသဘောဆောင်သောအကျိုးသက်ရောက်မှုများဖန်တီးသည်။ ၎င်းတို့သည် ငွေကုန်ကြေးကျများသော်လည်း၊ ၎င်းတို့သည် မြန်နှုန်းနှင့် latency နည်းပါးခြင်း၏ အားသာချက်များကို ပေးဆောင်သည်။
- မေးခွန်း- disk i/o ကို အကောင်းဆုံးဖြစ်အောင် ဆော့ဖ်ဝဲလ်အဆင့်မှာ ဘာလုပ်နိုင်မလဲ။ပြန်ကြားချက်- လိုအပ်ချက်များအရ ဖိုင်စနစ်အမျိုးအစားကို ရွေးချယ်ခြင်း၊ I/O အချိန်ဇယားဆွဲခြင်းဆက်တင်များကို အပ်ဒိတ်လုပ်ခြင်း၊ ကက်ရှ်နည်းပညာများကို အသုံးပြု၍ ဒေတာဘေ့စ်ဖွဲ့စည်းပုံကို ပိုကောင်းအောင်ပြုလုပ်ခြင်း disk i/o ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း။ ကိုယ်စားလုပ်ဆောင်နိုင်သော အခြေခံအကျဆုံးခြေလှမ်းများထဲမှ တစ်ခုဖြစ်သည်။
အကျဉ်းချုပ်နှင့် နိဂုံး
အခုခေတ်က မြင့်တယ်။ ဆာဗာစွမ်းဆောင်ရည် လျှောက်လွှာများ တိုးလာနေသည်။ ဤလိုအပ်ချက်များကိုဖြည့်ဆည်းရန် disk i/o စီမံခန့်ခွဲမှုနှင့် ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းသည် အလွန်အရေးကြီးပါသည်။ မှန်ကန်သော ဟာ့ဒ်ဝဲရွေးချယ်မှု၊ သင့်လျော်သော ဆော့ဖ်ဝဲလ်အစီအစဉ်များနှင့် ကက်ချခြင်းဖြေရှင်းချက်များဖြင့် disk i/o ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း။ ဖြစ်နိုင်သည်။ ဤနည်းအားဖြင့်၊ ဒေတာဘေ့စ်မေးခွန်းများသည် ပိုမိုမြန်ဆန်လာပြီး၊ အပလီကေးရှင်းများ ပိုမိုတည်ငြိမ်စွာလည်ပတ်လာပြီး အသုံးပြုသူအတွေ့အကြုံ တိုးလာပါသည်။ စွမ်းဆောင်ရည်မြှင့်တင်ရန်အတွက် တစ်ခုတည်းသော အံ့ဖွယ်ကုသမှု မရှိကြောင်း သတိရပါ။ သင့်စနစ်အား လုံးလုံးလျားလျားချဉ်းကပ်ပြီး အဆင့်ဆင့်တိုးတက်စေရန်အတွက် ၎င်းသည် အမြဲတမ်းအကောင်းဆုံးဗျူဟာဖြစ်သည်။