Valkey un Redis DBMS veiktspējas salīdzinājums

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%.

 Valkey un Redis DBMS veiktspējas salīdzinājums

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ē.

 Valkey un Redis DBMS veiktspējas salīdzinājums

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

Pievieno komentāru