Esitatud on vĂ€rskete Redis 8.0 ja Valkey 8.1 andmebaasi vĂ€ljaannete testimistulemused, milles on mĂ€rgitud olulised jĂ”udluse optimeerimised. KĂ”igis tehtud testides ĂŒletas kogukonna poolt arendatav fork originaalprojekti peamiselt tĂ€nu Valkey uue mehhanismi rakendamisele, mis vĂ”imaldab mitmekiiruselist sisend-/vĂ€ljundit asĂŒnkroonses reĆŸiimis, mille viis projekti juurde Amazon.
Testkeskkonnas AWS Graviton4 c8g.2xlarge koos 8 VCPU-ga saavutas Valkey 8.1.1 jĂ”udluseks 999,8 tuhat SET-pĂ€ringut sekundis, samas kui Redis 8.0 saavutas taseme 729,4 tuhat pĂ€ringut sekundis. Ăldiselt oli Valkey lĂ€bilaskevĂ”ime 37% kĂ”rgem SET-operatsioonide puhul ja 16% kĂ”rgem GET-operatsioonide puhul vĂ”rreldes Redis'ega. Samuti nĂ€itas Valkey projekti puhul, et vĂ”rreldes Redis'ega vĂ€henes pĂ€ringute töötlemise viivituste aeg 30% SET-operatsioonide puhul ja 60% GET-operatsioonide puhul.

Eraldi viidi lĂ€bi analĂŒĂŒs lĂ€bilaskevĂ”ime ja viivituste muutusest sĂ”ltuvalt samaaegselt teostatavate töötlejate arvust mitme kiirusereĆŸiimi sisend-/vĂ€ljundi töötlemise reĆŸiimis. Kuni 3 kiiruseni nĂ€itavad Valkey ja Redis umbes vĂ”rdselt tulemusi, kuid seejĂ€rel hakkab Valkey kiiresti juhtima. 6 kiirusel oli 8 VCPU-ga sĂŒsteemis Valkey jĂ”udlus 678 tuhat SET-pĂ€ringut sekundis, samas kui Redis'i puhul oli see 563 tuhat pĂ€ringut sekundis 256 samaaegse ĂŒhenduse piiril. Kui ĂŒhenduste arv suurendada 400-ni, tĂ”usis Valkey jĂ”udlus 832 tuhande SET-pĂ€ringu sekundis.

PĂ€rast katkestuste töötlemise optimeerimist sĂŒsteemis konteksti vahetamise vĂ€hendamiseks Ă”nnestus Valkey jĂ”udlust tĂ”sta 999,8 tuhande SET-pĂ€ringuni sekundis. Optimeerimise olemus seisnes 2 VCPU eraldamises katkestuste töötlemiseks ja 6 ĂŒlejÀÀnud VCPU sidumises Valkey ja Redis'i sisend-/vĂ€ljundi töötlemise kiirustega, et vĂ€listada töötlejate migreerumine CPU-de vahel. sudo ethtool -L ens34 combined 2 # piirame IRQ töötlejate arvu 2 peale grep ens34 /proc/interrupts # vaatame, millised töötlejad on aktiivsed (99 ja 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # seome töötleja 99 tuumas 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # seome töötleja 100 tuumas 2 # KĂ€ivitame andmebaasi (Redis'i puhul vaheta valkey/valkey:8.1.1 redis:8.0 vastu) konteineri tuumade 2-7 kĂŒlge 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
