Only ~25k RPS when running benchmark via redis-benchmark #68
-
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
|
Beta Was this translation helpful? Give feedback.
-
|
~25k RPS via redis-benchmark against Garnet is lower than expected given Garnet's claims of multi-million RPS in internal Microsoft benchmarks. A few things to check: 1. Pipeline depth — redis-benchmark defaults to no pipelining, which is latency-bound rather than throughput-bound: # Without pipelining: tests latency, not throughput
redis-benchmark -h localhost -p 6379 -c 50 -n 100000 GET mykey
# With pipelining: tests actual throughput
redis-benchmark -h localhost -p 6379 -c 50 -n 100000 -P 32 GET mykey2. Client count — default redis-benchmark -c 500 -P 32 -n 1000000 GET mykey3. Network path — running benchmark on the same host (loopback) vs. cross-network changes results significantly: # Same host: should be much higher
# Cross-network: depends on NIC, MTU, etc.4. Garnet config — make sure thread count is set to match CPU cores: // garnet.conf
{
"ThreadPoolMinThreads": 16,
"ThreadPoolMaxThreads": 64
}What's your test setup (same machine, cross-network, VM vs. bare metal)? And are you using pipelining? That'll help narrow down whether this is a config issue or a genuine performance ceiling. |
Beta Was this translation helpful? Give feedback.

redis-benchmarkis known to be extremely heavy on the client side, as it was developed for a different tier of performance.localhostnetwork roundtrip time and TCP overhead. Try-P 1024for example.Resp.benchmarkwhich is carefully designed to ensure client does not become the bottleneck, or if you want a third-party tool thenmemtier_benchmark(link) is better thanredis-benchmark.