A Valkey és a Redis teljesítményének összehasonlítása.

A Redis 8.0 és Valkey 8.1 új verzióinak tesztelési eredményeit mutatjuk be, amelyek során jelentős teljesítményoptimalizációk kerültek bejelentésre. Az összes végzett tesztben a közösség által fejlesztett fork felülmúlta az eredeti projektet, főként az Amazon által a projekthez átadott új, aszinkron módú I/O feldolgozásra vonatkozó több szálas mechanizmus bevezetésének köszönhetően.

Az AWS Graviton4 c8g.2xlarge tesztkörnyezeten 8 VCPU-val a Valkey 8.1.1 teljesítménye 999,8 ezer SET-kérést ért el másodpercenként, míg a Redis 8.0 729,4 ezer kérdést produkált másodpercenként. Összességében a Valkey áteresztőképessége 37%-kal meghaladta a Redisét a SET műveletek esetében, és 16%-kal a GET műveletek esetében. Emellett a Redishez viszonyítva a Valkey projekt 30%-kal csökkentette a SET műveletek kérésfeldolgozási késlekedését, és 60%-kal a GET műveletekét.

A Valkey és a Redis teljesítményének összehasonlítása.

Külön elemzést végeztünk a teljesítmény és a késlekedés változásáról a párhuzamosan végrehajtott kezelők számának függvényében, a több szálas I/O feldolgozás üzemmódjában. Három szálig a Valkey és a Redis körülbelül egyenlő eredményeket produkálnak, de utána a Valkey kiemelkedik. Hat szál esetén a 8 VCPU-val rendelkező rendszeren a Valkey teljesítménye 678 ezer SET-kérés másodpercenként volt, míg a Redis 563 ezer kérést produkált másodpercenként 256 egyidejű kapcsolat korlát mellett. A kapcsolatok számának 400-ra növelése esetén a Valkey teljesítménye 832 ezer SET-kérésre nőtt.

A Valkey és a Redis teljesítményének összehasonlítása.

A rendszer megszakításkezelésének optimalizálása után, a kontextusváltások számának csökkentése érdekében a Valkey teljesítménye 999,8 ezer SET-kérésre emelkedett másodpercenként. Az optimalizálás lényege az volt, hogy 2 VCPU-t allokáljanak a megszakítások kezelésére, és a fennmaradó 6 VCPU-t a Valkey és Redis I/O feldolgozó szálaihoz rendeljék, hogy kiküszöböljék a kezelők migrálását a CPU-k között. sudo ethtool -L ens34 combined 2 # korlátozzuk 2-re a megszakításkezelők számát grep ens34 /proc/interrupts # megnézzük, hogy melyik kezelők aktívak (99 és 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # hozzárendeljük a 99-es kezelőt az 1-es maghoz echo 2 | sudo tee /proc/irq/100/smp_affinity # hozzárendeljük a 100-as kezelőt a 2-es maghoz # Az adatbázis indítása (a Redis esetében változtassuk a valkey/valkey:8.1.1-et redis:8.0-ra) a konténer magokhoz való hozzárendelésével 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

A teljesítmény teszteléséhez a következő parancsot használtuk: 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

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster