Confronto delle prestazioni del DBMS Valkey e Redis

Sono stati presentati i risultati dei test delle recenti versioni dei database Redis 8.0 e Valkey 8.1, in cui sono state dichiarate significative ottimizzazioni delle prestazioni. In tutti i test condotti, il fork sviluppato dalla comunità ha superato il progetto originale, principalmente grazie all'implementazione in Valkey di un nuovo meccanismo per la gestione multi-threading dell'input/output in modalità asincrona, fornito al progetto da Amazon.

Nell'ambiente di test AWS Graviton4 c8g.2xlarge con 8 VCPU, Valkey 8.1.1 ha raggiunto una performance di 999.8 mila richieste SET al secondo, mentre Redis 8.0 ha raggiunto il livello di 729.4 mila richieste al secondo. In generale, la larghezza di banda di Valkey è risultata superiore a quella di Redis del 37% per le operazioni SET e del 16% per le operazioni GET. In questo caso, rispetto a Redis, il progetto Valkey ha mostrato una riduzione delle latenze nel trattamento delle richieste del 30% per le operazioni SET e del 60% per le operazioni GET.

Confronto delle prestazioni del DBMS Valkey e Redis

È stata condotta un'analisi separata delle variazioni della larghezza di banda e dei ritardi in base al numero di gestori eseguiti in parallelo in modalità multithreading per l'input/output. Fino a 3 thread, Valkey e Redis mostrano risultati simili, ma poi Valkey si distingue. Con 6 thread su un sistema con 8 VCPU, la performance di Valkey ha raggiunto 678.000 richieste SET al secondo, mentre Redis ha registrato 563.000 richieste al secondo con un limite di 256 connessioni simultanee. Aumentando le connessioni a 400, la performance di Valkey è salita a 832.000 richieste SET al secondo.

Confronto delle prestazioni del DBMS Valkey e Redis

Dopo l'ottimizzazione della gestione delle interruzioni nel sistema per ridurre il numero di switch di contesto, Valkey è riuscito ad aumentare le prestazioni a 999.8 mila richieste SET al secondo. L'ottimizzazione si è principalmente focalizzata sull'assegnazione di 2 VCPU per la gestione delle interruzioni e sulla connessione delle rimanenti 6 VCPU ai thread di gestione delle operazioni di input/output per Valkey e Redis, in modo da evitare la migrazione dei gestori tra le CPU. sudo ethtool -L ens34 combined 2 # limitiamo a 2 il numero di gestori IRQ grep ens34 /proc/interrupts # controlliamo quali gestori sono attivati (99 e 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # colleghiamo il gestore 99 al core 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # colleghiamo il gestore 100 al core 2 # Avviamo il DB (per Redis cambiare valkey/valkey:8.1.1 in redis:8.0) con il collegamento del contenitore ai 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

Per testare le prestazioni è stato utilizzato il comando: 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

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster