Srovnání výkonnosti databázových systémů Valkey a Redis.

Byly zveřejněny výsledky testování čerstvých verzí databázových systémů Redis 8.0 a Valkey 8.1, které hlásily významné optimalizace výkonu. Ve všech provedených testech se komunitou vyvíjená fork ukázala jako rychlejší než originální projekt, zejména díky zavedení nového mechanismu pro vícetrhu zpracování vstupu/výstupu v asynchronním režimu, který byl předán projektu společností Amazon.

V testovacím prostředí AWS Graviton4 c8g.2xlarge s 8 VCPU dosáhl Valkey 8.1.1 výkonu 999,8 tisíc SET požadavků za sekundu, zatímco v Redis 8.0 byl dosažen výkon 729,4 tisíc požadavků za sekundu. Celková propustnost Valkey tedy převyšovala Redis o 37% pro operace SET a o 16% pro GET. V porovnání s Redis projekt Valkey vykázal snížení latence při zpracování požadavků o 30% pro operace SET a o 60% pro operace GET.

Srovnání výkonnosti databázových systémů Valkey a Redis.

Byl také proveden rozbor změny propustnosti a latencí v závislosti na počtu paralelně prováděných zpracovatelů v režimu vícetrhu zpracování vstupu/výstupu. Až do 3 vláken vykazují Valkey a Redis přibližně stejné výsledky, ale poté se Valkey dostává do vedení. Při 6 vláknech na systému s 8 VCPU dosáhl Valkey výkonu 678 tisíc SET požadavků za sekundu, zatímco Redis 563 tisíc požadavků za sekundu při limitu 256 současných připojení. Při zvýšení počtu připojení na 400 se výkon Valkey zvýšil na 832 tisíc SET požadavků za sekundu.

Srovnání výkonnosti databázových systémů Valkey a Redis.

Po optimalizaci zpracování přerušení v systému pro snížení počtu přepnutí kontextu se Valkey podařilo zvýšit výkon na 999,8 tisíc SET požadavků za sekundu. Podstata optimalizace spočívala v přidělení 2 VCPU pro zpracování přerušení a přiřazení zbylých 6 VCPU k vláknům zpracování vstupu/výstupu Valkey a Redis, aby se vyloučila migrace zpracovatelů mezi CPU. sudo ethtool -L ens34 combined 2 # omezení počtu zpracovatelů IRQ na 2 grep ens34 /proc/interrupts # zkontrolujeme, které zpracovatele jsou zapojeny (99 a 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # přiřadíme zpracovatele 99 k jádru 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # přiřadíme zpracovatele 100 k jádru 2 # Spouštíme databázový systém (pro Redis změnit valkey/valkey:8.1.1 na redis:8.0) s vazbou kontejneru na jádra 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

Pro testování výkonu byla použita následující příkaz: 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

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster