Hasil pengujian rilis terbaru DBMS Redis 8.0 dan Valkey 8.1 disajikan, di mana pengoptimalan kinerja yang signifikan dinyatakan. Dalam semua pengujian yang dilakukan, fork yang dikembangkan oleh komunitas mengungguli proyek asli, terutama karena penerapan mekanisme baru untuk pemrosesan input/output multi-utas dalam mode asinkron di Valkey, yang ditransfer ke proyek oleh Amazon.
Dalam lingkungan pengujian AWS Graviton4 c8g.2xlarge dengan 8 VCPU, Valkey 8.1.1 mencapai throughput 999.8 ribu permintaan SET per detik, sementara Redis 8.0 mencapai level 729.4 ribu permintaan per detik. Secara keseluruhan, throughput Valkey 37% lebih tinggi daripada Redis untuk operasi SET dan 16% lebih tinggi untuk GET. Pada saat yang sama, dibandingkan dengan Redis, Valkey menunjukkan pengurangan SET sebesar 30% dan pengurangan latensi GET sebesar 60%.

Analisis terpisah dilakukan terhadap perubahan dalam throughput dan penundaan tergantung pada jumlah prosesor paralel dalam mode pemrosesan I/O multi-thread. Hingga 3 thread, Valkey dan Redis menunjukkan hasil yang hampir sama, tetapi kemudian Valkey memimpin. Dengan 6 thread pada sistem dengan 8 VCPU, kinerja Valkey adalah 678 ribu permintaan SET per detik, dan Redis adalah 563 ribu permintaan per detik dengan batas 256 koneksi simultan. Ketika jumlah koneksi meningkat menjadi 400, kinerja Valkey meningkat menjadi 832 ribu permintaan SET per detik.

Bahasa Indonesia: Setelah mengoptimalkan penanganan interupsi dalam sistem untuk mengurangi jumlah pergantian konteks di Valkey, kami berhasil meningkatkan kinerja menjadi 999.8 ribu permintaan SET per detik. Inti dari pengoptimalan ini adalah mengalokasikan 2 VCPU untuk penanganan interupsi dan mengikat 6 VCPU yang tersisa ke utas pemrosesan I/O Valkey dan Redis untuk menghilangkan migrasi pengendali antar-CPU. sudo ethtool -L ens34 combined 2 # batasi jumlah pengendali IRQ menjadi 2 grep ens34 /proc/interrupts # lihat pengendali mana yang terlibat (99 dan 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # ikat pengendali 99 ke inti 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # bind handler 100 ke core 2 # Jalankan DBMS (untuk Redis, ubah valkey/valkey:8.1.1 ke redis:8.0) dengan pengikatan kontainer ke core 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
Untuk pengujian kinerja, perintah berikut digunakan: 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
Sumber: opennet.ru
