Esitatud on Redis 8.0 ja Valkey 8.1 andmebaaside vĂ€rskete versioonide tĂ”hususe testide tulemused, kus on saavutatud mĂ€rkimisvÀÀrsed jĂ”udluse optimeerimised. KĂ”ikides lĂ€biviidud testides ĂŒletas kogukonna poolt arendatud fork algset projekti, peamiselt tĂ€nu Valkey uue mehhanismi rakendamisele mitme lĂ”imega asĂŒnkroonsete sisendi/vĂ€ljundi töötlemiseks, mille projekti toetas Amazon.
AWS Graviton4 c8g.2xlarge testkeskkonnas, kus on 8 VCPU, suutis Valkey 8.1.1 saavutada jĂ”udluse 999,8 tuhat SET-pĂ€ringut sekundis, samas kui Redis 8.0 saavutas 729,4 tuhat pĂ€ringut sekundis. Ăldiselt oli Valkey lĂ€bilaskevĂ”ime SET-operatsioonide puhul 37% suurem kui Redis ja GET-operatsioonide puhul 16% suurem. Samuti nĂ€itas Valkey vĂ”rreldes Redisiga pĂ€ringute töötlemise viivitusi 30% vĂ”rra vĂ€hem SET-operatsioonide puhul ja 60% vĂ€hem GET-operatsioonide puhul.

ErakĂ€es viidi lĂ€bi analĂŒĂŒs lĂ€bilaskevĂ”ime ja viivituste muutustest sĂ”ltuvalt samal ajal töötavate töötlejate arvust mitmeharulises sisendi/vĂ€ljundi töötlemise reĆŸiimis. Kuni kolme lĂ”ime puhul nĂ€itavad Valkey ja Redis enam-vĂ€hem sarnaseid tulemusi, kuid seejĂ€rel tĂ”useb Valkey esikohale. Kuue lĂ”imega sĂŒsteemis, kus on 8 VCPU-d, saavutas Valkey 678 tuhat SET-pĂ€ringut sekundis, samas kui Redis 563 tuhat pĂ€ringut sekundis 256 samaaegseĂŒhenduse piiril. Kui ĂŒhenduste arv suurendati 400-ni, siis Valkey jĂ”ud tĂ”usis 832 tuhande SET-pĂ€ringuni sekundis.

PĂ€rast katsete optimeerimist katkestuste töötlemiseks sĂŒsteemis, et vĂ€hendada kontekstide vahetuste arvu, tĂ”usis Valkey jĂ”udlus 999,8 tuhande SET-pĂ€ringu sekundis. Optimeerimise tuum oli 2 VCPU eraldamine katkestuste töötlemiseks ja 6 ĂŒlejÀÀnud VCPU sidumine Valkey ja Redis sisendi/vĂ€ljundi töötlemise voogudega, et vĂ€ltida töötlejate rĂ€ndamist CPU vahel. sudo ethtool -L ens34 combined 2 # piirame katkestuste arvu 2-ga grep ens34 /proc/interrupts # vaatame, millised töötlejad on kaasatud (99 ja 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # seome töötleja 99 tuumale 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # seome töötleja 100 tuumale 2 # KĂ€ivitame andmebaasi (Redis jaoks vahetage valkey/valkey:8.1.1 redis:8.0) konteineri tuumade 2-7 sidumisega 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
JĂ”udluse testimiseks kasutati kĂ€sku: 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
Allikas: opennet.ru
