Primerjava zmogljivosti upravljanja podatkovnih baz Valkey in Redis

Predstavljeni so rezultati testiranja najnovejših izdaj sistemov za upravljanje podatkovnih baz Redis 8.0 in Valkey 8.1, v katerih so bile deklarirane pomembne optimizacije zmogljivosti. V vseh izvedenih testih je fork, ki ga je razvila skupnost, presegel prvotni projekt, predvsem zaradi implementacije novega mehanizma za večnitno vhodno/izhodno obdelavo v asinhronem načinu v Valkeyju, ki ga je v projekt prenesel Amazon.

V testnem okolju AWS Graviton4 c8g.2xlarge z 8 VCPU-ji je Valkey 8.1.1 dosegel prepustnost 999.8 tisoč zahtev SET na sekundo, Redis 8.0 pa 729.4 tisoč zahtev na sekundo. Skupna prepustnost Valkeyja je bila za SET operacije za 37 % višja od Redisa, za GET pa za 16 % višja. Hkrati je Valkey v primerjavi z Redisom pokazal 30-odstotno zmanjšanje SET in 60-odstotno zmanjšanje zakasnitve GET.

 Primerjava zmogljivosti upravljanja podatkovnih baz Valkey in Redis

Ločena analiza je bila izvedena glede na spremembo pretočnosti in zamud glede na število vzporednih procesorjev v večnitnem načinu obdelave V/I. Do 3 niti Valkey in Redis kažeta približno enake rezultate, nato pa Valkey prevzame vodstvo. S 6 nitmi na sistemu z 8 VCPU-ji je bila Valkeyjeva zmogljivost 678 tisoč zahtev SET na sekundo, Redisova pa 563 tisoč zahtev na sekundo z omejitvijo 256 hkratnih povezav. Ko se je število povezav povečalo na 400, se je Valkeyjeva zmogljivost povečala na 832 tisoč zahtev SET na sekundo.

 Primerjava zmogljivosti upravljanja podatkovnih baz Valkey in Redis

Po optimizaciji obravnave prekinitev v sistemu za zmanjšanje števila preklopov konteksta v Valkeyju nam je uspelo povečati zmogljivost na 999.8 tisoč zahtev SET na sekundo. Bistvo optimizacije se je skrčilo na dodelitev 2 VCPU-jev za obravnavo prekinitev in vezavo preostalih 6 VCPU-jev na niti za obdelavo V/I Valkeyja in Redisa, da se odpravi migracija obdelovalcev med procesorji. sudo ethtool -L ens34 combined 2 # omejitev števila obdelovalcev IRQ na 2 grep ens34 /proc/interrupts # ogled vključenih obdelovalcev (99 in 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # vezava obdelovalca 99 na jedro 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # vezava rutine 100 na jedro 2 # Zaženite DBMS (za Redis spremenite valkey/valkey:8.1.1 v redis:8.0) z vezavo vsebnika na jedra procesorja 2-7 docker run —network=»host» —rm \ —cpuset-cpus=»2-7″ valkey/valkey:8.1.1 \ —save «» —appendonly ne —io-threads 6 \ —protected-mode ne —maxmemory 10gb

Za testiranje zmogljivosti je bil uporabljen naslednji ukaz: 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

Vir: opennet.ru

Dodaj komentar