Hi!
I'm currently tasked with evaluating consul as a kv-store for a project where we need a throughput of at least 120k requests per second.
So far I managed to get to about 23k req/s for reading while our etcd test system got about 130k req/s so I though I may have overlooked something.
The consul data dir is placed on a ramdisk, the server is a 24 core dual-processor xeon system and as network adapters there is infiniband as well as 10gig available. The values will have a size around 200 bytes, so the ip stack got optimized for latency. Also, GOMAXPROCS was set to 24 and no other programs are running, beside consul and the basic system (debian linux). Also enabled enabled "-dev"-mode for testing.
I tried 0.6.4 as well as 0.7.0rc2 (with 1 for the raft multiplier) and different node setups (from 1 client, 1 server to 3 clients and 3 servers with every client directed at a different server).
The 23k is an average for reading, for writing it is at about 14k per second. Also, latency spikes are a common thing (ranges from 370 to 190.000 microseconds, with an average of 680 microseconds).
I would be really grateful if anyone can point me in a direction how I may increase the throughput. Maybe I'm overlooking something obvious.
Greetings,
Martin Zahn