Vergläich vun der Leeschtung vun der Valkey an der Redis DBMS

D'Resultater vun den Tester vun de leschten Versioune vum Redis 8.0 a Valkey 8.1 DBMS ginn presentéiert, an deenen bedeitend Leeschtungsoptimiséierunge festgestallt goufen. An allen duerchgefouerten Tester huet d'Fork, déi vun der Communautéit entwéckelt gouf, den urspréngleche Projet iwwertraff, haaptsächlech wéinst der Implementatioun a Valkey vun engem neie Mechanismus fir Multi-Threaded Input/Output Veraarbechtung am asynchrone Modus, deen vun Amazon op de Projet iwwerdroe gouf.

An der AWS Graviton4 c8g.2xlarge Testëmfeld mat 8 VCPUs huet Valkey 8.1.1 en Duerchgank vun 999.8 Dausend SET-Ufroen pro Sekonn erreecht, während Redis 8.0 en Niveau vun 729.4 Dausend Ufroen pro Sekonn erreecht huet. Am Allgemengen war den Duerchgank vu Valkey 37% méi héich wéi dee vu Redis fir SET-Operatiounen an 16% méi héich fir GET. Gläichzäiteg huet Valkey am Verglach mat Redis eng Reduktioun vun 30% vun der SET- an 60% vun der GET-Latenz gewisen.

 Vergläich vun der Leeschtung vun der Valkey an der Redis DBMS

Eng separat Analyse gouf vun der Ännerung vum Duerchsatz a Verspéidungen ofhängeg vun der Zuel vun de parallele Prozessoren am Multi-Threaded I/O-Veraarbechtungsmodus duerchgefouert. Bis zu 3 Threads weisen Valkey a Redis ongeféier gläich Resultater, awer dann iwwerhëlt Valkey d'Féierung. Mat 6 Threads op engem System mat 8 VCPUs war d'Performance vu Valkey 678 dausend SET-Ufroen pro Sekonn, an déi vu Redis 563 dausend Ufroen pro Sekonn mat enger Limit vun 256 gläichzäitege Verbindungen. Wéi d'Zuel vun de Verbindungen op 400 eropgaangen ass, ass d'Performance vu Valkey op 832 dausend SET-Ufroen pro Sekonn eropgaangen.

 Vergläich vun der Leeschtung vun der Valkey an der Redis DBMS

Nodeems mir d'Interrupt-Handling am System optimiséiert haten, fir d'Zuel vun de Kontextwiesselen am Valkey ze reduzéieren, hu mir et fäerdeg bruecht, d'Performance op 999.8 dausend SET-Ufroen pro Sekonn ze erhéijen. D'Essenz vun der Optimiséierung koum doran, 2 VCPUs fir d'Interrupt-Handling zouzeweisen an déi reschtlech 6 VCPUs un d'Valkey- an Redis-I/O-Veraarbechtungsthreads ze bannen, fir d'Migratioun vun Handler tëscht CPUs ze eliminéieren. sudo ethtool -L ens34 combined 2 # limitéiert d'Zuel vun den IRQ-Handler op 2 grep ens34 /proc/interrupts # kuckt, wéi eng Handler involvéiert sinn (99 an 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # bindt den Handler 99 un de Kär 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # bind den Handler 100 un de Kär 2 # Start den DBMS (fir Redis, ännert valkey/valkey:8.1.1 op redis:8.0) mat Containerbindung un d'CPU-Kären 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

Fir d'Performancetester gouf de folgende Kommando benotzt: 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

Source: opennet.ru

Setzt e Commentaire