Valkey eta Redis DBMS errendimenduaren konparaketa

Redis 8.0 eta Valkey 8.1 DBMSren azken bertsioen probak egitearen emaitzak aurkezten dira, eta bertan errendimendu optimizazio esanguratsuak adierazi dira. Egindako proba guztietan, komunitateak garatutako forkak jatorrizko proiektua baino emaitza hobeak lortu ditu, batez ere Amazonek proiektura transferitu duen sarrera/irteera prozesatzeko mekanismo berri bat Valkey-n modu asinkronoan inplementatu delako.

AWS Graviton4 c8g.2xlarge proba-ingurunean, 8 VCPUrekin, Valkey 8.1.1-ek 999.8 mila SET eskaera segundoko lortu zuen, eta Redis 8.0-k, berriz, 729.4 mila eskaera segundoko. Oro har, Valkey-ren errendimendua % 37 handiagoa izan zen Redis-ena baino SET eragiketetarako, eta % 16 handiagoa GET-erako. Aldi berean, Redis-ekin alderatuta, Valkey-k % 30eko murrizketa erakutsi zuen SET eta % 60ko murrizketa GET latentzian.

 Valkey eta Redis DBMS errendimenduaren konparaketa

Beste analisi bat egin zen errendimenduaren aldaketaren eta atzerapenen inguruan, hari anitzeko S/I prozesatzeko moduan dauden prozesadore paraleloen kopuruaren arabera. 3 hari arte, Valkeyk eta Redisek emaitza ia berdinak erakusten dituzte, baina orduan Valkeyk hartzen du aurrea. 6 VCPU dituen sistema batean 8 harirekin, Valkeyren errendimendua 678 mila SET eskaera segundoko izan zen, eta Redisena 563 mila eskaera segundoko, 256 konexio aldiberekoren mugarekin. Konexio kopurua 400era igo zenean, Valkeyren errendimendua 832 mila SET eskaera segundoko igo zen.

 Valkey eta Redis DBMS errendimenduaren konparaketa

Valkey-n testuinguru-aldaketen kopurua murrizteko sisteman etenaldien kudeaketa optimizatu ondoren, errendimendua segundoko 999.8 mila SET eskaerara igotzea lortu dugu. Optimizazioaren funtsa etenaldien kudeaketarako 2 VCPU esleitzean eta gainerako 6 VCPUak Valkey eta Redis I/O prozesatzeko harietara lotzean zetzan, CPUen arteko kudeatzaileen migrazioa ezabatzeko. sudo ethtool -L ens34 combined 2 # IRQ kudeatzaileen kopurua 2ra mugatu grep ens34 /proc/interrupts # zein kudeatzaile dauden inplikatuta ikusi (99 eta 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # 99 kudeatzailea 1 nukleora lotu echo 2 | sudo tee /proc/irq/100/smp_affinity # 100 kudeatzailea 2. nukleora lotu # DBKS abiarazi (Redis-erako, aldatu valkey/valkey:8.1.1 redis:8.0-ra) edukiontzia 2-7 CPU nukleoetara lotuz 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

Errendimendu probak egiteko, komando hau erabili da: 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

Iturria: opennet.ru

Gehitu iruzkin berria