I am trying to benchmark MongoDB and obtain a throughput vs. latency plot. I am using YCSB as the client and I increase the number of client threads to increase the load on the database. I consistently obtain a plot such as below.
The average latency of a request first decreases as I increase the number of client threads (and thus the throughput), as opposed to increasing monotonically with throughput. I am trying to figure out the reason behind this.
MongoDB runs on 8 CPUs and I have observed this behaviour on different machines. I use the official docker for MongoDB but the behaviour is the same with bare-metal.