Натиҷаҳои санҷиши версияҳои охирини Redis 8.0 ва Valkey 8.1 DBMS пешниҳод карда мешаванд, ки дар онҳо оптимизатсияи назарраси кор эълон карда шуданд. Дар ҳама озмоишҳои гузаронидашуда, форк, ки аз ҷониби ҷомеа таҳия шудааст, аз лоиҳаи аслӣ бартарӣ дошт, асосан аз ҳисоби татбиқи механизми нави коркарди вуруд/баромад дар реҷаи асинхронӣ, ки аз ҷониби Amazon ба лоиҳа интиқол дода шудааст.
Дар муҳити санҷишии AWS Graviton4 c8g.2xlarge бо 8 VCPU, Valkey 8.1.1 қобилияти интиқоли 999.8 ҳазор дархости SET дар як сонияро ба даст овард, дар ҳоле ки Redis 8.0 ба сатҳи 729.4 ҳазор дархост дар як сония расид. Дар маҷмӯъ, қобилияти интиқоли Valkey нисбат ба Redis барои амалиёти SET 37% ва барои GET 16% зиёдтар буд. Ҳамзамон, дар муқоиса бо Redis, Valkey 30% коҳиши SET ва 60% коҳиши таъхири GET-ро нишон дод.

Тағйирёбии қобилияти интиқол ва таъхирҳо вобаста ба шумораи протсессори параллелӣ дар реҷаи коркарди бисёрсоҳаи I/O таҳлили алоҳида гузаронида шуд. То 3 ришта, Valkey ва Redis тақрибан натиҷаҳои баробар нишон медиҳанд, аммо баъд Valkey пешсафро мегирад. Бо 6 ришта дар система бо 8 VCPU, иҷрои Valkey 678 ҳазор дархости SET дар як сония ва Редис 563 ҳазор дархост дар як сония бо маҳдудияти 256 пайвасти ҳамзамон буд. Вақте ки шумораи пайвастҳо ба 400 расид, иҷрои Valkey то 832 ҳазор дархости SET дар як сония афзоиш ёфт.

Пас аз оптимизатсияи коркарди таваққуф дар система барои кам кардани шумораи коммутаторҳои контекстӣ дар Valkey, мо тавонистем, ки иҷроишро то 999.8 ҳазор дархости SET дар як сония афзоиш диҳем. Моҳияти оптимизатсия аз ҷудо кардани 2 VCPU барои коркарди таваққуф ва пайваст кардани 6 VCPU-и боқимонда ба риштаҳои коркарди Valkey ва Redis I/O барои рафъи муҳоҷирати коркардкунандагон байни CPUҳо буд. sudo ethtool -L ens34 combined 2 # маҳдуд кардани шумораи коркардкунандагони IRQ то 2 grep ens34 /proc/interrupts # бубинед, ки кадом коркардкунандагон ҷалб шудаанд (99 ва 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # пайвасткунандаи коркардкунанда 99 ба аслӣ 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # пайвасткунандаи коркардкунанда 100 ба ядрои 2 # DBMS-ро оғоз кунед (барои Redis, тағир додани valkey/valkey:8.1.1 ба redis:8.0) бо бастани контейнер ба ядроҳои CPU 2-7 docker run —network=»host» —rm-c \=c valkey/valkey:2 \ —захира кардан «» —танҳо замима нест —io-threads 7 \ —режими муҳофизатшуда не —максимум хотира 8.1.1гб
Барои санҷиши самаранокӣ фармони зерин истифода шуд: 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 256 — риштахои 3000000 -д 6
Манбаъ: opennet.ru
