Redis 8.0 နှင့် Valkey 8.1 DBMS တို့၏ နောက်ဆုံးထွက်ရှိမှုများကို စမ်းသပ်ခြင်း၏ ရလဒ်များကို ပြသခဲ့ပြီး သိသာထင်ရှားသော စွမ်းဆောင်ရည် ပိုမိုကောင်းမွန်အောင် လုပ်ဆောင်မှုများကို ကြေညာခဲ့သည်။ စမ်းသပ်မှုအားလုံးတွင်၊ ရပ်ရွာမှတီထွင်ထားသောလမ်းဆုံသည် အဓိကအားဖြင့် Amazon မှ ပရောဂျက်သို့ လွှဲပြောင်းထားသည့် multi-threaded input/output processing ယန္တရားအသစ် Valkey တွင် အကောင်အထည်ဖော်မှုကြောင့် မူလပရောဂျက်ထက် သာလွန်သွားခဲ့သည်။
VCPU 4 ခုပါသော AWS Graviton8 c2g.8xlarge စမ်းသပ်မှုပတ်ဝန်းကျင်တွင်၊ Valkey 8.1.1 သည် တစ်စက္ကန့်လျှင် SET တောင်းဆိုမှု 999.8ဝဝဝ ၏ ဖြတ်တောက်မှုကို အောင်မြင်ခဲ့ပြီး Redis 8.0 သည် တစ်စက္ကန့်လျှင် တောင်းဆိုမှု 729.4ဝဝဝ အဆင့်ကို ရရှိခဲ့သည်။ ယေဘုယျအားဖြင့်၊ Valkey ၏ ဖြတ်သန်းမှုသည် SET လုပ်ငန်းများအတွက် Redis ထက် 37% ပိုများပြီး GET အတွက် 16% ပိုများသည်။ တစ်ချိန်တည်းမှာပင် Redis နှင့် နှိုင်းယှဉ်ပါက Valkey သည် SET တွင် 30% လျှော့ချခြင်းနှင့် GET latency တွင် 60% လျှော့ချခြင်းကို သရုပ်ပြခဲ့သည်။

Multi-threaded I/O လုပ်ဆောင်ခြင်းမုဒ်ရှိ Parallel ပရိုဆက်ဆာများ၏ အရေအတွက်ပေါ်မူတည်၍ ဖြတ်သန်းမှုပြောင်းလဲမှုနှင့် နှောင့်နှေးမှုများအပေါ် သီးခြားခွဲခြမ်းစိတ်ဖြာမှုတစ်ခု ပြုလုပ်ခဲ့ပါသည်။ စာတွဲ 3 ခုအထိ၊ Valkey နှင့် Redis သည် ခန့်မှန်းခြေအားဖြင့် တူညီသောရလဒ်များကိုပြသသော်လည်း Valkey က ဦးဆောင်သည်။ VCPUs 6 ခုပါသော စနစ်တွင် စာတွဲ 8 ခုဖြင့်၊ Valkey ၏စွမ်းဆောင်ရည်သည် တစ်စက္ကန့်လျှင် SET တောင်းဆိုမှု 678 ရှိပြီး Redis သည် တစ်စက္ကန့်လျှင် တောင်းဆိုချက်ပေါင်း 563 ရှိပြီး တစ်စက္ကန့်လျှင် 256 တပြိုင်နက်ချိတ်ဆက်မှုကန့်သတ်ချက်ရှိသည်။ ချိတ်ဆက်မှုအရေအတွက် 400 သို့တိုးလာသောအခါ Valkey ၏စွမ်းဆောင်ရည်သည် တစ်စက္ကန့်လျှင် SET တောင်းဆိုမှု 832 အထိတိုးလာသည်။

Valkey ရှိ ဆက်စပ်ခလုတ်များ အရေအတွက်ကို လျှော့ချရန်အတွက် စနစ်အတွင်း အနှောက်အယှက် ကိုင်တွယ်မှုကို အကောင်းဆုံးဖြစ်အောင် လုပ်ဆောင်ပြီးနောက်၊ ကျွန်ုပ်တို့သည် တစ်စက္ကန့်လျှင် SET တောင်းဆိုမှု 999.8ဝဝဝ အထိ စွမ်းဆောင်ရည်ကို တိုးမြှင့်နိုင်ခဲ့သည်။ ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း၏ အနှစ်သာရမှာ အနှောင့်အယှက် ကိုင်တွယ်ခြင်းအတွက် VCPU 2 ခုကို ခွဲဝေပေးပြီး ကျန် VCPU 6 ခုအား CPU များအကြား ကိုင်တွယ်သူ၏ ရွှေ့ပြောင်းခြင်းကို ဖယ်ရှားရန်အတွက် Valkey နှင့် Redis I/O လုပ်ငန်းစဉ်များတွင် တွဲချိတ်ထားသည်။ sudo ethtool -L ens34 ပေါင်းစပ် 2 # သည် IRQ ကိုင်တွယ်သူအရေအတွက်ကို 2 grep ens34 သို့ကန့်သတ်သည် /proc/interrupts # မည်သည့်ကိုင်တွယ်ကိရိယာများပါဝင်သည်ကိုကြည့်ပါ (99 နှင့် 100) ပဲ့တင်သံ 1 | sudo tee /proc/irq/99/smp_affinity # bind handler 99 မှ core 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # bind handler 100 မှ core 2 # DBMS ကိုစတင်ပါ ( Redis အတွက်၊ valkey/valkey:8.1.1 သို့ redis:8.0 သို့ပြောင်း) ကွန်တိန်နာတွင် CPU cores 2-7 docker run —network=»host» —setc-2″sc valkey/valkey:7 \ —save «» —နောက်ဆက်တွဲမရှိ —io-threads 8.1.1 \ —protected-mode no —maxmemory 6gb
စွမ်းဆောင်ရည်စမ်းသပ်ခြင်းအတွက်၊ အောက်ပါ command ကိုအသုံးပြုခဲ့သည်- docker run —network=»host» —rm —cpuset-cpus=»2-7″ \ valkey/valkey:8.0.1 valkey-benchmark \ -h 172.31.4.92 -p 6379 -t SET,GET -n 100000000 — threads 256 -d 3000000
source: opennet.ru
