facebook/mcrouter

Slow performance - Redis benchmark test

pvyaka01 opened this issue · 1 comments

Noticing really slow performance with mcrouter when compared to memcache. Is this expected? It gets even worse when we use multiple remote memcache instances but for benchmarking purposes, i'm only using one memcache instance for this test. KB/sec is really slow and latency is high. What should I adjust to get a relatively comparable performance? Thanks for the help!

I'm using release 38 (it's not easy to build for CentOS 7 with version 41 so had to use an available rpm which is version 38).
CPU/mem of server running mcrouter:
2 Cores / 16 GB

CPU/mem of server running memcache
2 Cores/12 GB

OS:
Red Hat Enterprise Linux Server release 7.9 (Maipo)

Here's my setup - mcrouter configured to connect to a single remote memcached node:
mcrouter
--config-str='{"pools":{"A":{"servers":["x.x.x.x:11212"]}},
"route": {"type": "OperationSelectorRoute","operation_policies": {"add": "AllSyncRoute|Pool|A","delete": "AllSyncRoute|Pool|A","get": "LatestRoute|Pool|A", "set": "AllSyncRoute|Pool|A"}}}'
-p 5000
--num-proxies=2

redis benchmark test (memtier):
./memtier_benchmark --random-data --data-size-range=4-204 --data-size-pattern=S --key-minimum=200 --key-maximum=400 --key-pattern=G:G --key-stddev=10 --key-median=300 -s localhost -p 5000 -P memcache_text

Results
Writing results to stdout
[RUN #1] Preparing benchmark client...
[RUN #1] Launching threads now...
[RUN #1 100%, 209 secs] 0 threads: 2000000 ops, 14915 (avg: 9551) ops/sec, 2.14MB/sec (avg: 1.37MB/sec), 13.41 (avg: 20.90) msec latencyy
4 Threads
50 Connections per thread
10000 Requests per client

image

Without mcrouter and connecting to same remote memcached instance
/memtier_benchmark --random-data --data-size-range=4-204 --data-size-pattern=S --key-minimum=200 --key-maximum=400 --key-pattern=G:G --key-stddev=10 --key-median=300 -s x.x.x.x -p 11212 -P memcache_text

Results
Writing results to stdout
[RUN #1] Preparing benchmark client...
[RUN #1] Launching threads now...
[RUN #1 100%, 68 secs] 0 threads: 2000000 ops, 27856 (avg: 29191) ops/sec, 3.98MB/sec (avg: 4.18MB/sec), 7.11 (avg: 6.83) msec latency

4 Threads
50 Connections per thread
10000 Requests per client

image

Any feedback pls?