Tiek prezentÄti jaunÄko Redis 8.0 un Valkey 8.1 DBMS versiju testÄÅ”anas rezultÄti, kuros tika deklarÄtas ievÄrojamas veiktspÄjas optimizÄcijas. Visos veiktajos testos kopienas izstrÄdÄtÄ atzaroÅ”ana pÄrspÄja sÄkotnÄjo projektu, galvenokÄrt pateicoties jauna mehÄnisma ievieÅ”anai daudzpavedienu ievades/izvades apstrÄdei asinhronÄ režīmÄ, ko projektam pÄrsÅ«tÄ«ja Amazon.
AWS Graviton4 c8g.2xlarge testa vidÄ ar 8 VCPU Valkey 8.1.1 sasniedza 999.8 tÅ«kstoÅ”u SET pieprasÄ«jumu caurlaidspÄju sekundÄ, savukÄrt Redis 8.0 sasniedza 729.4 tÅ«kstoÅ”u pieprasÄ«jumu sekundÄ lÄ«meni. KopumÄ Valkey caurlaidspÄja SET operÄcijÄm bija par 37% augstÄka nekÄ Redis un GET operÄcijÄm par 16% augstÄka. TajÄ paÅ”Ä laikÄ, salÄ«dzinot ar Redis, Valkey demonstrÄja SET latentuma samazinÄjumu par 30% un GET latentuma samazinÄjumu par 60%.

AtseviŔķi tika veikta caurlaidspÄjas un aizkaves izmaiÅu analÄ«ze atkarÄ«bÄ no paralÄlo procesoru skaita daudzpavedienu I/O apstrÄdes režīmÄ. LÄ«dz 3 pavedieniem Valkey un Redis uzrÄda aptuveni vienÄdus rezultÄtus, bet tad Valkey izvirzÄs vadÄ«bÄ. Ar 6 pavedieniem sistÄmÄ ar 8 VCPU Valkey veiktspÄja bija 678 tÅ«kstoÅ”i SET pieprasÄ«jumu sekundÄ, bet Redis ā 563 tÅ«kstoÅ”i pieprasÄ«jumu sekundÄ ar ierobežojumu lÄ«dz 256 vienlaicÄ«giem savienojumiem. Kad savienojumu skaits palielinÄjÄs lÄ«dz 400, Valkey veiktspÄja palielinÄjÄs lÄ«dz 832 tÅ«kstoÅ”iem SET pieprasÄ«jumu sekundÄ.

PÄc pÄrtraukumu apstrÄdes optimizÄcijas sistÄmÄ, lai samazinÄtu konteksta slÄdžu skaitu Valkey, mums izdevÄs palielinÄt veiktspÄju lÄ«dz 999.8 tÅ«kstoÅ”iem SET pieprasÄ«jumu sekundÄ. OptimizÄcijas bÅ«tÄ«ba bija 2 VCPU pieŔķirÅ”ana pÄrtraukumu apstrÄdei un atlikuÅ”o 6 VCPU saistīŔana ar Valkey un Redis I/O apstrÄdes pavedieniem, lai novÄrstu apstrÄdÄtÄju migrÄciju starp centrÄlajiem procesoriem. sudo ethtool -L ens34 combined 2 # ierobežo IRQ apstrÄdÄtÄju skaitu lÄ«dz 2 grep ens34 /proc/interrupts # skata, kuri apstrÄdÄtÄji ir iesaistÄ«ti (99 un 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # piesaista apstrÄdÄtÄju 99 1. kodolam echo 2 | sudo tee /proc/irq/100/smp_affinity # piesaistÄ«t apstrÄdÄtÄju 100 2. kodolam # StartÄt DBVS (Redis gadÄ«jumÄ nomainiet valkey/valkey:8.1.1 uz redis:8.0) ar konteinera saistīŔanu ar CPU kodoliem 2ā7 docker run ānetwork=Ā»hostĀ» ārm \ ācpuset-cpus=Ā»2-7ā³ valkey/valkey:8.1.1 \ āsave «» āappendonly no āio-threads 6 \ āprotected-mode no āmaxmemory 10gb
VeiktspÄjas testÄÅ”anai tika izmantota Å”Äda komanda: 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 -c 256 \ -r 3000000 āthreads 6 -d 1024
Avots: opennet.ru
