Memorust

Benchmarks

Throughput medida com o redis-benchmark.

O Memorust pode ser avaliado com a ferramenta padrão redis-benchmark, já que fala RESP.

Rodando o benchmark

# sem pipelining
redis-benchmark -p 6379 -t set,get -n 100000

# com pipelining (revela a throughput do servidor, não a latência de round-trip)
redis-benchmark -p 6379 -t set,get -n 300000 -P 16

Resultados

Resultados atuais em build de release, máquina de desenvolvimento Apple série M:

OperaçãoSem pipeline (-P 1)Com pipeline (-P 16)
SET~142k ops/seg~264k ops/seg
GET~163k ops/seg~1,27M ops/seg

Latência da execução sem pipeline (-n 100000, 50 clientes paralelos):

Operaçãomédp50p95p99máx
SET0,290ms0,279ms0,463ms0,743ms1,671ms
GET0,178ms0,175ms0,255ms0,343ms0,663ms

Interpretando os números

Sem pipelining, o benchmark é dominado pelos round-trips de rede, então ele mede principalmente a latência. Com pipelining, aparece o teto do próprio servidor: o GET escala muito além do SET porque as leituras rodam concorrentes sob um lock compartilhado, enquanto as escritas ainda serializam no lock exclusivo.

Versões anteriores reportavam ~75k SET / ~150k GET. O ganho no SET vem do escritor AOF bufferizado; o ganho no GET vem de servir leituras sob um lock compartilhado.

Os resultados podem variar conforme o hardware e a versão da implementação.

Nesta página