Pagtandi sa pasundayag sa Valkey ug Redis DBMS

Gipresentar ang mga resulta sa pagsulay sa pinakabag-o nga pagpagawas sa Redis 8.0 ug Valkey 8.1 DBMS, diin gideklarar ang mahinungdanong pag-optimize sa performance. Sa tanan nga mga pagsulay nga gihimo, ang tinidor nga gihimo sa komunidad milabaw sa orihinal nga proyekto, nag-una tungod sa pagpatuman sa Valkey sa usa ka bag-ong mekanismo alang sa multi-threaded input/output processing sa asynchronous mode, nga gibalhin sa proyekto sa Amazon.

Sa AWS Graviton4 c8g.2xlarge test environment nga adunay 8 VCPUs, ang Valkey 8.1.1 nakab-ot ang throughput sa 999.8 thousand SET requests kada segundo, samtang ang Redis 8.0 nakab-ot ang level sa 729.4 thousand requests kada segundo. Sa kinatibuk-an, ang throughput ni Valkey 37% nga mas taas kaysa sa Redis alang sa mga operasyon sa SET ug 16% nga mas taas alang sa GET. Sa parehas nga oras, kung itandi sa Redis, gipakita ni Valkey ang 30% nga pagkunhod sa SET ug 60% nga pagkunhod sa latency sa GET.

 Pagtandi sa pasundayag sa Valkey ug Redis DBMS

Ang usa ka separado nga pagtuki gihimo sa pagbag-o sa throughput ug mga paglangan depende sa gidaghanon sa parallel processors sa multi-threaded I/O processing mode. Hangtud sa 3 ka thread, Valkey ug Redis nagpakita sa gibana-bana nga managsama nga mga resulta, apan si Valkey ang nanguna. Uban sa 6 nga mga hilo sa usa ka sistema nga adunay 8 ka VCPU, ang pasundayag ni Valkey mao ang 678 ka libo nga hangyo sa SET matag segundo, ug ang kang Redis mao ang 563 ka libo nga hangyo matag segundo nga adunay limitasyon sa 256 nga dungan nga mga koneksyon. Kung ang gidaghanon sa mga koneksyon misaka sa 400, ang pasundayag ni Valkey misaka sa 832 ka libo nga hangyo sa SET kada segundo.

 Pagtandi sa pasundayag sa Valkey ug Redis DBMS

Pagkahuman sa pag-optimize sa interrupt nga pagdumala sa sistema aron makunhuran ang gidaghanon sa mga switch sa konteksto sa Valkey, nakahimo kami nga madugangan ang pasundayag sa 999.8 ka libo nga hangyo sa SET matag segundo. Ang esensya sa pag-optimize nahulog sa pag-alok sa 2 ka VCPU alang sa paghunong sa pagdumala ug pagbugkos sa nahabilin nga 6 ka VCPU sa mga thread sa pagproseso sa Valkey ug Redis I/O aron mawagtang ang paglalin sa mga handler tali sa mga CPU. sudo ethtool -L ens34 combined 2 # limitahan ang gidaghanon sa mga IRQ handler ngadto sa 2 grep ens34 /proc/interrupts # tan-awa kung kinsa nga mga handler ang nalambigit (99 ug 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # pagbugkos handler 99 ngadto sa kinauyokan 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # bind handler 100 to core 2 # Sugdi ang DBMS (alang sa Redis, usba ang valkey/valkey:8.1.1 ngadto sa redis:8.0) nga adunay sudlanan nga nagbugkos sa CPU cores 2-7 docker run —network=»host» —rm \=2-cpus″ valkey/valkey:7 \ —save «» —dugang dili —io-threads 8.1.1 \ —protected-mode no —maxmemory 6gb

Para sa performance testing, ang mosunod nga command gigamit: 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 —mga hilo 256 -d 3000000

Source: opennet.ru

Idugang sa usa ka comment