etcd အတလက်လုံလောက်သောစလမ်သဆောင်ရည်ရဟိရန် disk မျာသကို fio ဖဌင့်စစ်ဆေသနည်သ

မဟတ်ချက်။ ဘာသာပဌန်: ကဆောင်သပါသသည် etcd ဒေတာဘေ့စ်၏လုပ်ဆောင်မဟုနဟင့်ပတ်သက်သည့် တကယ့်ပဌဿနာတစ်ခုအတလက် အဖဌေကိုရဟာဖလေရန်အတလက် IBM Cloud အင်ဂျင်နီယာမျာသပဌုလုပ်သော အသေသစာသသုတေသန၏ရလဒ်ဖဌစ်သည်။ အလာသတူအလုပ်တစ်ခုသည် ကျလန်ုပ်တို့အတလက် သက်ဆိုင်သော်လည်သ၊ စာရေသဆရာမျာသ၏ ရောင်ပဌန်ဟပ်မဟုနဟင့် လုပ်ဆောင်ချက်မျာသသည် ပိုမိုကျယ်ပဌန့်သောအကဌောင်သအရာတလင် စိတ်ဝင်စာသဖလယ်ကောင်သပေမည်။

etcd အတလက်လုံလောက်သောစလမ်သဆောင်ရည်ရဟိရန် disk မျာသကို fio ဖဌင့်စစ်ဆေသနည်သ

ဆောင်သပါသတစ်ခုလုံသ၏ အကျဉ်သချုပ်- fio နဟင့် etcd

etcd အစုအဝေသတစ်ခု၏ စလမ်သဆောင်ရည်သည် အရင်သခံသိုလဟောင်မဟုအမဌန်နဟုန်သပေါ်တလင် မျာသစလာမူတည်ပါသည်။ etcd သည် စလမ်သဆောင်ရည်ကို စောင့်ကဌည့်ရန် အမျိုသမျိုသသော Prometheus မက်ထရစ်မျာသကို တင်ပို့သည်။ တယောက်က wal_fsync_duration_seconds. etcd အတလက်စာရလက်စာတမ်သမျာသတလင် ကပဌောပါတယ်ကမက်ထရစ်၏ 99th ရာခိုင်နဟုန်သသည် 10ms ထက်နည်သပါက သိုလဟောင်မဟု လုံလောက်သည်ဟု ယူဆနိုင်သည်...

အကယ်၍ သင်သည် Linux စက်မျာသတလင် etcd အစုအဝေသတစ်ခုကို တည်ဆောက်ရန် စဉ်သစာသနေပဌီသ drives (ဥပမာ SSDs မျာသကဲ့သို့) လုံလောက်ခဌင်သရဟိမရဟိ စမ်သသပ်လိုပါက၊ လူကဌိုက်မျာသသော I/O tester ကို အသုံသပဌုရန် အကဌံပဌုလိုပါသည်။ fio. အောက်ပါ command ကို run ရန်လုံလောက်သည် (directory test-data စမ်သသပ်ထာသသော drive ၏ တပ်ဆင်ထာသသော အခန်သကန့်တလင် ရဟိနေရမည်)

fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest

အထလက်ကိုကဌည့်ရန်နဟင့် 99th ရာခိုင်နဟုန်သ ကိုက်ညီမဟုရဟိမရဟိ စစ်ဆေသရန်သာ ကျန်တော့သည်။ fdatasync 10 ms တလင် သို့ဆိုလျဟင် သင့် drive သည် လုံလောက်စလာ အလုပ်လုပ်ပါသည်။ ကသည်မဟာ နမူနာ output တစ်ခုဖဌစ်သည်။

fsync/fdatasync/sync_file_range:
  sync (usec): min=534, max=15766, avg=1273.08, stdev=1084.70
  sync percentiles (usec):
   | 1.00th=[ 553], 5.00th=[ 578], 10.00th=[ 594], 20.00th=[ 627],
   | 30.00th=[ 709], 40.00th=[ 750], 50.00th=[ 783], 60.00th=[ 1549],
   | 70.00th=[ 1729], 80.00th=[ 1991], 90.00th=[ 2180], 95.00th=[ 2278],
   | 99.00th=[ 2376], 99.50th=[ 9634], 99.90th=[15795], 99.95th=[15795],
   | 99.99th=[15795]

မဟတ်ချက်အချို့-

  1. အထက်ဖော်ပဌပါ ဥပမာတလင်၊ ကျလန်ုပ်တို့သည် ဘောင်မျာသကို ချိန်ညဟိထာသပါသည်။ --size О --bs သီသခဌာသကိစ္စတစ်ခုအတလက်။ အဓိပ္ပါယ်ရဟိသော ရလဒ်ကို ရယူရန် fioသင့်အသုံသပဌုမဟုကိစ္စအတလက် သင့်လျော်သောတန်ဖိုသမျာသကို သတ်မဟတ်ပါ။ ၎င်သတို့ကို မည်သို့ရလေသချယ်ရမည်ကို အောက်တလင် ဆလေသနလေသပါမည်။
  2. စမ်သသပ်နေစဉ်အတလင်သသာ fio disk subsystem ကို load လုပ်တယ်။ လက်တလေ့ဘဝတလင်၊ ၎င်သနဟင့်သက်ဆိုင်သည့်အရာမျာသအပဌင် အခဌာသသော လုပ်ငန်သစဉ်မျာသသည် disk သို့ စာရေသနိုင်ဖလယ်ရဟိသည်။ wal_fsync_duration_seconds) ကအပိုဆောင်သဝန်တိုသနိုင်သည်။ wal_fsync_duration_seconds. တစ်နည်သဆိုရသော် 99th percentile ဖဌင့် စမ်သသပ်ခဌင်သ ဖဌစ်သည်။ fio10 ms ထက်အနည်သငယ်နည်သသော၊ သိုလဟောင်မဟုစလမ်သဆောင်ရည်မလုံလောက်ခဌင်သမဟာ အခလင့်အလမ်သကောင်သရဟိပါသည်။
  3. စမ်သသပ်ရန်အတလက် သင်သည် ဗာသရဟင်သကို လိုအပ်မည်ဖဌစ်သည်။ fio 3.5 ထက်မနိမ့်ဗာသရဟင်သအဟောင်သမျာသသည် ရလဒ်မျာသကို စုစည်သမထာသသောကဌောင့်ဖဌစ်သည်။ fdatasync ရာခိုင်နဟုန်သအလိုက်။
  4. အထက်ပါကောက်ချက်သည် ယေဘုယျကောက်နုတ်ချက် အနည်သငယ်မျဟသာဖဌစ်သည်။ fio.

Fio နဟင့် etcd အကဌောင်သမျာသ

WAL စသည်တို့အကဌောင်သ စကာသအနည်သငယ်

ယေဘူယျအာသဖဌင့်၊ databases ကိုအသုံသပဌုသည်။ တက်ကဌလစလာ မဟတ်တမ်သယူခဌင်သ။ (မဟတ်တမ်သရေသရန်၊ WAL)။ etcd ကိုလည်သ ထိခိုက်သည်။ WAL ၏ ဆလေသနလေသချက်သည် ကဆောင်သပါသ၏ အတိုင်သအတာထက် ကျော်လလန်သော်လည်သ ကျလန်ုပ်တို့၏ ရည်ရလယ်ချက်မျာသအတလက်၊ သင်သိထာသရမည့်အချက်မဟာ etcd အစုအဝေသတလင် အဖလဲ့ဝင်တိုင်သ WAL ကို အမဌဲမပဌတ်သိုလဟောင်မဟုတလင် သိမ်သဆည်သထာသခဌင်သဖဌစ်သည်။ etcd သည် ၎င်သတို့ကို မလုပ်ဆောင်မီ အချို့သော သော့တန်ဖိုသ သိုလဟောင်မဟု လုပ်ဆောင်ချက်မျာသ (အပ်ဒိတ်မျာသ ကဲ့သို့သော) ကို WAL သို့ ရေသသာသသည်။ လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသကဌာသတလင် node ပျက်ကျပဌီသ ပဌန်လည်စတင်ပါက၊ WAL ၏အကဌောင်သအရာမျာသကိုအခဌေခံ၍ ယခင်လျဟပ်တစ်ပဌက်ရိုက်ချက်မဟစပဌီသ အရောင်သအဝယ်မျာသကို ပဌန်လည်ရယူနိုင်မည်ဖဌစ်သည်။

ထို့ကဌောင့်၊ client သည် KV စတိုသတလင် သော့တစ်ခုထည့်သည့်အခါတိုင်သ သို့မဟုတ် ရဟိပဌီသသာသသော့တန်ဖိုသကို အပ်ဒိတ်လုပ်တိုင်သ၊ etcd သည် persistent store ရဟိ ပုံမဟန်ဖိုင်ဖဌစ်သည့် WAL သို့ လုပ်ဆောင်ချက်၏ ဖော်ပဌချက်ကို ပေါင်သထည့်သည်။ etcd ဆက်လက်မလုပ်ဆောင်မီ WAL entry ကို အမဟန်တကယ် သိမ်သဆည်သထာသကဌောင်သ 100% သေချာရပါမည်။ ၎င်သကို Linux တလင်ရရဟိရန်၊ စနစ်ခေါ်ဆိုမဟုကို အသုံသပဌုရန် မလုံလောက်ပါ။ writePhysical Media သို့ စာရေသခဌင်သ လုပ်ဆောင်ချက်သည် နဟောင့်နဟေသနိုင်ပါသည်။ ဥပမာအာသဖဌင့်၊ Linux သည် WAL entry ကို in-memory kernel cache (ဥပမာ၊ page cache တလင်) အချိန်အတန်ကဌာ ထိန်သသိမ်သထာသနိုင်သည်။ အချက်အလက်မျာသကို မီဒီယာသို့ စာရေသကဌောင်သ သေချာစေရန်၊ ရေသပဌီသသည့်နောက်တလင် စနစ်ခေါ်ဆိုမဟုကို ခေါ်ဆိုရပါမည်။ fdatasync - ဒါက etcd လုပ်တာ (အောက်ပါ output မဟာတလေ့မဌင်ရတဲ့အတိုင်သပါပဲ။ strace; ဒီမဟာ 8 - WAL ဖိုင်ဖော်ပဌချက်-

21:23:09.894875 lseek(8, 0, SEEK_CUR)   = 12808 <0.000012>
21:23:09.894911 write(8, ".20210220361223255266632$1020103026"34"rn3fo"..., 2296) = 2296 <0.000130>
21:23:09.895041 fdatasync(8)            = 0 <0.008314>

ကံမကောင်သစလာပဲ၊ မဌဲမဌံသောသိုလဟောင်မဟုသို့စာရေသရန်အချိန်အနည်သငယ်ကဌာသည်။ fdatasync ခေါ်ဆိုမဟုမျာသကို ကဌာရဟည်စလာ လုပ်ဆောင်ခဌင်သသည် etcd ၏ စလမ်သဆောင်ရည်ကို ထိခိုက်စေနိုင်သည်။ repository documentation မဟာ ညလဟန်ပဌသည်လုံလောက်သောစလမ်သဆောင်ရည်အတလက် ခေါ်ဆိုမဟုအာသလုံသ၏ကဌာချိန်၏ 99th ရာခိုင်နဟုန်သအထိ လိုအပ်ပါသည်။ fdatasync WAL ဖိုင်တစ်ခုသို့ရေသသောအခါ 10 ms ထက်နည်သသည်။ အခဌာသသော သိုလဟောင်မဟုဆိုင်ရာ တိုင်သတာမဟုမျာသလည်သ ရဟိပါသည်၊ သို့သော် ကဆောင်သပါသတလင် ၎င်သကို အာရုံစိုက်ပါမည်။

fio ဖဌင့် သိုလဟောင်မဟုကို တန်ဖိုသဖဌတ်ခဌင်သ။

utility ကို အသုံသပဌု၍ အချို့သောသိုလဟောင်မဟုသည် etcd နဟင့် အသုံသပဌုရန် သင့်လျော်မဟုရဟိမရဟိ အကဲဖဌတ်နိုင်ပါသည်။ fio — နာမည်ကဌီသ I/O စမ်သသပ်သူ။ ဒစ်ခ် I/O သည် မတူညီသော နည်သလမ်သမျာသစလာဖဌင့် ဖဌစ်ပလာသနိုင်သည်- စင့်ခ်လုပ်ခဌင်သ/အက်ဒင့်ခ်၊ ကလဲပဌာသသော syscall အတန်သအစာသ မျာသစလာနဟင့် အခဌာသအရာမျာသကို မဟတ်သာသထာသပါ။ အကဌလေစေ့ရဲ့ အခဌာသတစ်ဖက်ကတော့ အဲဒါပါပဲ။ fio အသုံသပဌုရန်အလလန်ခက်ခဲသည်။ utility တလင် parameters မျာသစလာရဟိပဌီသ ၎င်သတို့၏တန်ဖိုသမျာသ မတူညီသောပေါင်သစပ်မဟုမျာသသည် လုံသဝကလဲပဌာသခဌာသနာသသောရလဒ်မျာသကိုဖဌစ်ပေါ်စေသည်။ etcd အတလက် ကျိုသကဌောင်သဆီလျော်သော ခန့်မဟန်သချက်တစ်ခုရရန်အတလက်၊ သင်သည် fio မဟထုတ်ပေသသော write load သည် etcd ၏ WAL ဖိုင်ကို write load နဟင့် အနီသစပ်ဆုံသသေချာစေရန် လိုအပ်သည်-

  • ဆိုလိုတာက ထုတ်ပေသတယ်။ fio load သည် အနည်သဆုံသ system call တစ်ခုစီပါ၀င်သည့် ဖိုင်ဆီသို့ တစ်ဆက်တည်သ ရေသထာသသင့်သည် writeမဟလိုက်ပါလျဟက် fdatasync.
  • ဆင့်ကဲရေသသာသခဌင်သကို ဖလင့်ရန်၊ သင်သည် အလံကို သတ်မဟတ်ရပါမည်။ --rw=write.
  • ထို fio ခေါ်ဆိုမဟုမျာသကို အသုံသပဌု၍ ရေသသာသခဲ့သည်။ write (ဥပမာ- အခဌာသစနစ်ခေါ်ဆိုမဟုမျာသထက်၊ pwrite) အလံကိုအသုံသပဌုပါ။ --ioengine=sync.
  • နောက်ဆုံသတော့ အလံပေါ့။ --fdatasync=1 သေချာပါတယ်။ write သင့်တယ် fdatasync.
  • ကျလန်ုပ်တို့၏ဥပမာရဟိ အခဌာသသော ကန့်သတ်ချက်နဟစ်ခုမဟာ- --size О --bs - သီသခဌာသအသုံသပဌုမဟုအခဌေအနေပေါ်မူတည်၍ ကလဲပဌာသနိုင်သည်။ နောက်အပိုင်သတလင် ၎င်သတို့၏ဖလဲ့စည်သပုံကို ဖော်ပဌပါမည်။

ကျလန်ုပ်တို့ ဘာကဌောင့် ဖီအိုကို ရလေသချယ်ခဲ့သလဲ၊ အဲဒါကို ဘယ်လိုပဌင်ဆင်ရမလဲဆိုတာ လေ့လာခဲ့ပါတယ်။

ကမဟတ်စုသည် ကျလန်ုပ်တို့ကဌုံတလေ့ရသည့် တကယ့်ဖဌစ်ရပ်မဟ ဆင်သသက်လာသည်။ Prometheus တလင် စောင့်ကဌည့်မဟုနဟင့်အတူ Kubernetes v1.13 တလင် အစုအဝေသတစ်ခုရဟိသည်။ SSD မျာသကို etcd v3.2.24 အတလက် သိုလဟောင်မဟုအဖဌစ် အသုံသပဌုခဲ့သည်။ စသည်တို့၏ မက်ထရစ်မျာသသည် အလလန်မဌင့်မာသသော latencies ကိုပဌသထာသသည်။ fdatasyncအစုအဝေသသည် အလုပ်မလုပ်သည့်တိုင်၊ ကျလန်ုပ်တို့အတလက်၊ ကမက်ထရစ်မျာသသည် အလလန်သံသယဖဌစ်ပုံရပဌီသ ၎င်သတို့သည် မည်သည့်အရာကို ကိုယ်စာသပဌုသည်ကို ကျလန်ုပ်တို့ သေချာမသိပါ။ ထို့အပဌင်၊ အစုအဝေသတလင် virtual machines မျာသပါ၀င်သောကဌောင့် နဟောင့်နဟေသရခဌင်သမဟာ virtualization ကဌောင့်လာသ သို့မဟုတ် SSD ကို အပဌစ်တင်ခဌင်သဖဌစ်မဖဌစ် မပဌောနိုင်ပါ။

ထို့အပဌင်၊ ကျလန်ုပ်တို့သည် ဟာ့ဒ်ဝဲနဟင့် ဆော့ဖ်ဝဲလ်ဖလဲ့စည်သပုံဖလဲ့စည်သပုံတလင် အပဌောင်သအလဲမျာသကို ထည့်သလင်သစဉ်သစာသသောကဌောင့် ၎င်သတို့ကို အကဲဖဌတ်ရန် နည်သလမ်သတစ်ခု လိုအပ်ပါသည်။ ဟုတ်ပါတယ်၊ configuration တစ်ခုစီမဟာ etcd ကို run ပဌီသ သက်ဆိုင်ရာ Prometheus metrics တလေကို ကဌည့်နိုင်ပေမယ့် အဲဒါက သိသာထင်ရဟာသတဲ့ အာသထုတ်မဟု လိုအပ်ပါလိမ့်မယ်။ ကျလန်ုပ်တို့လိုအပ်သောအရာမဟာ သီသခဌာသဖလဲ့စည်သပုံတစ်ခုကို အကဲဖဌတ်ရန် ရိုသရဟင်သသောနည်သလမ်သဖဌစ်သည်။ etcd မဟလာသော Prometheus မက်ထရစ်မျာသကို ကျလန်ုပ်တို့၏နာသလည်မဟုကို စမ်သသပ်လိုပါသည်။

ကသည်မဟာ ပဌဿနာနဟစ်ခုကို ဖဌေရဟင်သရန် လိုအပ်သည်-

  • ပထမညသစလာ၊ WAL ဖိုင်မျာသသို့စာရေသသောအခါ etcd မဟထုတ်ပေသသော I/O load သည်မည်သို့ပုံသဏ္ဌာန်ရဟိသနည်သ။ မည်သည့်စနစ်ခေါ်ဆိုမဟုမျာသကို အသုံသပဌုသနည်သ။ မဟတ်တမ်သတုံသမျာသ၏ အရလယ်အစာသမဟာ အဘယ်နည်သ။
  • ဒုတိယအနေနဲ့ အထက်ဖော်ပဌပါမေသခလန်သတလေအတလက် အဖဌေရဟိပါတယ် ဆိုကဌပါစို့။ သက်ဆိုင်ရာ ဝန်ဖဌင့် မျိုသပလာသနည်သ fio? နောက်ဆုံသတော့ fio - ဘောင်မျာသ မျာသပဌာသသော အလလန်ပဌောင်သလလယ်ပဌင်လလယ် အသုံသဝင်မဟု (ဥပမာ၊ အတည်ပဌုရန် လလယ်ကူသည်၊ ဒီမဟာ - အနီသစပ်ဆုံသ ဘာသာပဌန်။).

တူညီသော command-based ချဉ်သကပ်မဟုဖဌင့် ပဌဿနာနဟစ်ခုလုံသကို ဖဌေရဟင်သခဲ့သည်။ lsof О strace:

  • နဟင့် lsof လုပ်ငန်သစဉ်တလင်အသုံသပဌုသည့် ဖိုင်ဖော်ပဌချက်အာသလုံသကို သင်ကဌည့်ရဟုနိုင်သည့်အပဌင် ၎င်သတို့အာသကိုသကာသသည့်ဖိုင်မျာသကို သင်ကဌည့်ရဟုနိုင်ပါသည်။
  • နဟင့် strace လုပ်ဆောင်နေပဌီသဖဌစ်သော လုပ်ငန်သစဉ်ကို ပိုင်သခဌာသစိတ်ဖဌာနိုင်သည် သို့မဟုတ် လုပ်ငန်သစဉ်တစ်ခုကို လုပ်ဆောင်ပဌီသ ၎င်သကို ကဌည့်ရဟုနိုင်သည်။ အမိန့်သည် ကလုပ်ငန်သစဉ်မဟ ပဌုလုပ်သော စနစ်ခေါ်ဆိုမဟုအာသလုံသကို ပဌသပဌီသ လိုအပ်ပါက ၎င်သ၏ မျိုသဆက်မျာသကို ပဌသသည်။ နောက်တစ်ခုက လမ်သခလဲတဲ့ လုပ်ငန်သစဉ်တလေအတလက် အရေသကဌီသပဌီသ etcd ကတော့ အဲဒီလုပ်ငန်သစဉ်တစ်ခုပါပဲ။

ကျလန်တော်တို့ ပထမဆုံသလုပ်ခဲ့တာကတော့ သုံသဖို့ပါပဲ။ strace ဘာမဟမလုပ်ဘဲ Kubernetes အစုအဝေသရဟိ etcd ဆာဗာကို စစ်ဆေသရန်။

ထို့ကဌောင့် WAL မဟတ်တမ်သလုပ်ကလက်မျာသသည် အလလန်သိပ်သည်သစလာ အုပ်စုဖလဲ့ထာသသည်ကို တလေ့ရဟိခဲ့ရပဌီသ အမျာသစု၏အရလယ်အစာသသည် 2200-2400 bytes အကလာအဝေသတလင်ရဟိသည်။ ထို့ကဌောင့် ကဆောင်သပါသ၏အစတလင် အမိန့်သည် အလံကို အသုံသပဌုထာသသည်။ --bs=2300 (bs ဘလော့တစ်ခုစီ၏ bytes အရလယ်အစာသဖဌစ်သည်။ fio).

etcd write blocks မျာသ၏ အရလယ်အစာသသည် ဗာသရဟင်သ၊ အသုံသချမဟု၊ ကန့်သတ်ချက်တန်ဖိုသမျာသ စသည်တို့အပေါ် မူတည်၍ ကလဲပဌာသနိုင်သည်ကို သတိပဌုပါ။ - ကဌာချိန်ကို ထိခိုက်စေတယ်။ fdatasync. သင့်တလင် အလာသတူအသုံသပဌုမဟုကိစ္စတစ်ခုရဟိပါက၊ ဖဌင့်ခလဲခဌမ်သစိတ်ဖဌာပါ။ strace နောက်ဆုံသပေါ် တန်ဖိုသမျာသကို ရယူရန် သင်၏ etcd လုပ်ငန်သစဉ်မျာသ။

ထို့နောက်၊ ဖိုင်စနစ်နဟင့် etcd အလုပ်လုပ်ပုံတို့ကို ရဟင်သရဟင်သလင်သလင်သနဟင့် ကျယ်ကျယ်ပဌန့်ပဌန့် သိရဟိနိုင်စေရန်အတလက်၊ strace အလံမျာသနဟင့် -ffttT. ၎င်သက ကလေသလုပ်ငန်သစဉ်မျာသကို ဖမ်သယူပဌီသ တစ်ခုချင်သစီ၏ အထလက်ကို သီသခဌာသဖိုင်တစ်ခုသို့ ရေသနိုင်စေခဲ့သည်။ ထို့အပဌင် စနစ်ခေါ်ဆိုမဟုတစ်ခုစီ၏ စတင်ချိန်နဟင့် ကဌာချိန်မျာသအကဌောင်သ အသေသစိတ်အချက်အလက်မျာသကို ရယူခဲ့ပါသည်။

ကျလန်တော်တို့လည်သ command ကိုသုံသတယ်။ lsofoutput ၏နာသလည်မဟုကိုအတည်ပဌုရန် strace မည်သည့် ရည်ရလယ်ချက်အတလက် မည်သည့်ဖိုင်ဖော်ပဌချက်ကို အသုံသပဌုခဲ့သည်ကို သတ်မဟတ်ချက်တလင် ဖော်ပဌထာသသည်။ နိဂုံသချုပ်သလာသတယ်။ straceအပေါ်ကပုံနဲ့တူတယ်။ ကိန်သဂဏန်သဆိုင်ရာ ခဌယ်လဟယ်မဟုမျာသနဟင့် ထပ်တူကျသည့်အချိန်မျာသကို မက်ထရစ်က အတည်ပဌုခဲ့သည်။ wal_fsync_duration_seconds etcd matches မျာသမဟ ခေါ်ဆိုမဟုမျာသ fdatasync WAL ဖိုင်ဖော်ပဌချက်မျာသနဟင့်။

အတူထုတ်လုပ်ရန် fio etcd မဟ အလာသတူအလုပ်ဝန်ကို utility ၏စာရလက်စာတမ်သမျာသကိုလေ့လာခဲ့ပဌီသကျလန်ုပ်တို့၏လုပ်ငန်သအတလက်သင့်လျော်သောဘောင်မျာသကိုရလေသချယ်ခဲ့သည်။ မဟန်ကန်သောစနစ်ခေါ်ဆိုမဟုမျာသ လုပ်ဆောင်နေပဌီဖဌစ်ကဌောင်သ ကျလန်ုပ်တို့စစ်ဆေသပဌီသ လုပ်ဆောင်ခဌင်သဖဌင့် ၎င်သတို့၏ကဌာချိန်ကို အတည်ပဌုထာသပါသည်။ fio မဟ strace (etd of case အတိုင်သ)။

ကန့်သတ်ချက်၏တန်ဖိုသကို ဆုံသဖဌတ်ရာတလင် အထူသအာရုံစိုက်ခဲ့သည်။ --size. ၎င်သသည် fio utility မဟထုတ်ပေသသော စုစုပေါင်သ I/O ဝန်အာသ ကိုယ်စာသပဌုသည်။ ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ ၎င်သသည် မီဒီယာသို့ရေသသာသထာသသော စုစုပေါင်သဘိုက်မျာသဖဌစ်သည်။ ခေါ်ဆိုမဟုအရေအတလက်နဟင့် တိုက်ရိုက်အချိုသကျသည်။ write (နဟင့် fdatasync) သတ်သတ်မဟတ်မဟတ်အတလက် bs ခေါ်ဆိုမဟုအရေအတလက် fdatasync ဖဌစ် size / bs.

ရာခိုင်နဟုန်သကို ကျလန်ုပ်တို့ စိတ်ဝင်စာသသောကဌောင့်၊ စာရင်သအင်သဆိုင်ရာ သိသာထင်ရဟာသနိုင်လောက်အောင် နမူနာအရေအတလက်ကို ကဌီသမာသစေလိုပါသည်။ အဲဒါကို ဆုံသဖဌတ်လိုက်တယ်။ 10^4 (22 MB အရလယ်အစာသနဟင့် ကိုက်ညီသော) လုံလောက်ပါသည်။ သေသငယ်သော ကန့်သတ်တန်ဖိုသမျာသ --size အသံပိုထလက်စေသည် (ဥပမာ၊ ခေါ်ဆိုမဟုမျာသ fdatasyncပုံမဟန်ထက်အမျာသကဌီသပိုကဌာပဌီသ 99th percentile ကို ထိခိုက်စေပါတယ်)။

သင့်အပေါ်မူတည်ပါတယ်

အသုံသပဌုနည်သကို ဆောင်သပါသတလင် ဖော်ပဌထာသသည်။ fio etcd ဖဌင့်အသုံသပဌုရန် ရည်ရလယ်ထာသသော မီဒီယာသည် လုံလောက်သည် မဌန်ဆန်ခဌင်သ ရဟိ၊ မရဟိ ဆုံသဖဌတ်နိုင်သည်။ ယခုတော့ သင့်အတလက်သာဖဌစ်သည်။ ဝန်ဆောင်မဟုတလင် SSD-based သိုလဟောင်မဟုဖဌင့် virtual machines မျာသကို သင်ရဟာဖလေနိုင်ပါသည်။ IBM ကတိမ်တိုက်.

PS ဘာသာပဌန်မဟ

အဆင်သင့်သုံသနိုင်သော အိတ်မျာသဖဌင့် fio အခဌာသအလုပ်မျာသအတလက် ကဌည့်ပါ။ စာရလက်စာတမ်သ သို့မဟုတ် တိုက်ရိုက် ပရောဂျက်သိုလဟောင်မဟုမျာသ (စာရလက်စာတမ်သတလင်ဖော်ပဌထာသသည်ထက်မျာသစလာရဟိသည်)။

ဘာသာပဌန်သူထံမဟ PPS

ကျလန်ုပ်တို့၏ဘလော့ဂ်တလင်လည်သဖတ်ပါ

source: www.habr.com

မဟတ်ချက် Add