Primerjava zmogljivosti DBMS Valkey in Redis

Predstavljeni so rezultati testiranja najnovejših različic DBMS Redis 8.0 in Valkey 8.1, v katerih so bile napovedane pomembne optimizacije zmogljivosti. V vseh izvedenih testih je fork, ki ga razvija skupnost, prehitel izvirni projekt, predvsem zaradi uvedbe novega mehanizma za večnitno obdelavo vhodno/izhodnih operacij v asinhronem načinu, ki ga je projektu zagotovila družba Amazon.

V testnem okolju AWS Graviton4 c8g.2xlarge z 8 VCPU je Valkey 8.1.1 dosegla zmogljivost 999.8 tisoč SET zahtevkov na sekundo, medtem ko je Redis 8.0 dosegel raven 729.4 tisoč zahtevkov na sekundo. Na splošno je bila propustnost Valkey višja od Redis za 37 % pri operacijah SET in za 16 % pri GET. Hkrati je v primerjavi z Redis projekt Valkey pokazal 30 % zmanjšanje zakasnitve pri obdelavi zahtevkov pri operacijah SET in 60 % pri operacijah GET.

Primerjava zmogljivosti DBMS Valkey in Redis

Posebno je bila opravljena analiza spremembe propustnosti in zakasnitve odvisno od števila vzporedno izvajajočih se obdelovalnikov v načinu večnitne obdelave vhodno/izhodnih operacij. Do 3 niti Valkey in Redis kažeta približno enake rezultate, vendar potem Valkey prevzame vodstvo. Pri 6 nitih na sistemu z 8 VCPU je bila zmogljivost Valkey 678 tisoč SET zahtevkov na sekundo, medtem ko je Redis dosegel 563 tisoč zahtevkov na sekundo pri omejitvi 256 sočasnih povezav. Pri povečanju povezav na 400 se je zmogljivost Valkey povečala na 832 tisoč SET zahtevkov na sekundo.

Primerjava zmogljivosti DBMS Valkey in Redis

Po optimizaciji obdelave prekinitev v sistemu za zmanjšanje števila preklapljanj kontekstov je Valkey uspelo zvišati zmogljivost na 999,8 tisoč SET poizvedb na sekundo. Bistvo optimizacije je bilo v dodelitvi 2 VCPU za obdelavo prekinitev ter vezavi 6 preostalih VCPU na niti obdelave I/O Valkey in Redis, da se izključi migracija obdelovalcev med CPU. sudo ethtool -L ens34 combined 2 # omejimo število obdelovalcev IRQ na 2 grep ens34 /proc/interrupts # preverimo, kateri obdelovalci so vključeni (99 in 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # vezujemo obdelovalec 99 na jedro 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # vezujemo obdelovalec 100 na jedro 2 # Zagon SDB (za Redis spremenite valkey/valkey:8.1.1 na redis:8.0) s vezavo kontejnerja na jedra CPU 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

Za testiranje zmogljivosti je bila uporabljena ukazna vrstica: 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

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster