Comparación del rendimiento de Valkey y Redis DBMS

Se presentan los resultados de las pruebas de las últimas versiones de los sistemas de gestión de bases de datos Redis 8.0 y Valkey 8.1, en las que se observaron importantes optimizaciones de rendimiento. En todas las pruebas realizadas, la bifurcación desarrollada por la comunidad superó al proyecto original, principalmente gracias a la implementación en Valkey de un nuevo mecanismo para el procesamiento de entrada/salida multihilo en modo asíncrono, transferido al proyecto por Amazon.

En el entorno de prueba AWS Graviton4 c8g.2xlarge con 8 VCPU, Valkey 8.1.1 alcanzó un rendimiento de 999.8 solicitudes SET por segundo, mientras que Redis 8.0 alcanzó un nivel de 729.4 solicitudes por segundo. En general, el rendimiento de Valkey fue un 37 % superior al de Redis para operaciones SET y un 16 % superior para GET. Al mismo tiempo, en comparación con Redis, Valkey demostró una reducción del 30 % en la latencia SET y del 60 % en la latencia GET.

 Comparación del rendimiento de Valkey y Redis DBMS

Se realizó un análisis independiente del cambio en el rendimiento y los retrasos en función del número de procesadores paralelos en el modo de procesamiento de E/S multihilo. Hasta 3 hilos, Valkey y Redis muestran resultados aproximadamente iguales, pero en este caso Valkey se impone. Con 6 hilos en un sistema con 8 VCPU, el rendimiento de Valkey fue de 678 563 solicitudes SET por segundo, mientras que el de Redis fue de 256 400 solicitudes por segundo, con un límite de 832 conexiones simultáneas. Al aumentar el número de conexiones a XNUMX, el rendimiento de Valkey aumentó a XNUMX XNUMX solicitudes SET por segundo.

 Comparación del rendimiento de Valkey y Redis DBMS

Tras optimizar la gestión de interrupciones en el sistema para reducir el número de cambios de contexto en Valkey, logramos aumentar el rendimiento a 999.8 solicitudes SET por segundo. La optimización se centró en asignar 2 VCPU para la gestión de interrupciones y vincular las 6 VCPU restantes a los subprocesos de procesamiento de E/S de Valkey y Redis para eliminar la migración de controladores entre CPU. sudo ethtool -L ens34 combined 2 # limitar el número de controladores de IRQ a 2 grep ens34 /proc/interrupts # ver qué controladores están involucrados (99 y 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # vincular el controlador 99 al núcleo 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # enlazar el manejador 100 al núcleo 2 # Iniciar el DBMS (para Redis, cambiar valkey/valkey:8.1.1 a redis:8.0) con el contenedor enlazado a los núcleos de 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

Para probar el rendimiento, se utilizó el siguiente comando: 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

Fuente: opennet.ru

Añadir un comentario