Порівняння продуктивності Redis Valkey 8.0 та 8.1
Опубліковані результати тестування нових версій СУБД Redis 8.0 та Valkey 8.1, які обіцяли значні оптимізації продуктивності. У всіх проведених тестах розроблюваний спільнотою форк Valkey перевершив оригінальний проект Redis, головним чином завдяки впровадженню нового механізму для багатопотокової обробки вводу/виводу в асинхронному режимі, який був переданий проекту компанією Amazon.
Вражаючі показники продуктивності Valkey
У тестовому середовищі AWS Graviton4 c8g.2xlarge з 8 VCPU Valkey 8.1.1 досяг продуктивності 999,8 тисяч SET-запитів за секунду. Натомість Redis 8.0 показав результат лише 729,4 тисяч запитів за секунду.
Загалом пропускна здатність Valkey виявилася вищою за Redis на 37% для операцій SET і на 16% для GET. Крім того, порівняно з Redis, проект Valkey продемонстрував зниження затримок при обробці запитів на 30% для операцій SET та на 60% для операцій GET.
Аналіз продуктивності при різній кількості потоків
Окремо проведено аналіз зміни пропускної здатності та затримок залежно від кількості паралельно виконуваних обробників у режимі багатопотокової обробки вводу/виводу.
До 3 потоків Valkey і Redis показують приблизно однакові результати, але потім уперед виривається Valkey. При 6 потоках на системі з 8 VCPU продуктивність Valkey склала 678 тисяч SET-запитів за секунду, а Redis — 563 тисячі запитів за секунду з лімітом у 256 одночасних з’єднань.
При збільшенні з’єднань до 400 продуктивність Valkey зросла до 832 тисяч SET-запитів за секунду. Такий прогрес демонструє переваги архітектури Valkey для обробки високого навантаження.
Оптимізація обробки переривань для максимальної продуктивності
Після оптимізації обробки переривань у системі для зменшення кількості перемикань контексту, в Valkey вдалося підняти продуктивність до вражаючих 999,8 тисяч SET-запитів за секунду.
Суть оптимізації полягала у виділенні 2 VCPU для обробки переривань і прив’язці 6 інших VCPU до потоків обробки вводу/виводу Valkey та Redis. Це дозволило виключити міграцію обробників між CPU, що значно покращило продуктивність.
Конфігурація для тестування продуктивності
Для тестування продуктивності використовувалася наступна конфігурація:
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
Отже, результати тестування чітко демонструють перевагу Valkey у всіх тестах продуктивності. Завдяки внеску від Amazon та активній розробці спільнотою, Valkey став серйозною альтернативою для тих, хто шукає високу продуктивність та низьку затримку в розподілених системах кешування даних.
Більше інформації про результати тестування можна знайти на офіційному сайті Valkey та у офіційному блозі.