Hi Kristian On 04/30/2014 02:11 PM, Kristian Nielsen wrote:
Vangelis Katsikaros <vkatsikaros@yahoo.gr> writes:
What do you mean with the phrase [code|server] "falls over"?
I am refering to a common phenomenon in high-concurrency benchmarks. See for example the graph in this email:
https://lists.launchpad.net/maria-developers/msg06799.html https://lists.launchpad.net/maria-developers/gifSCfeVH5OFW.gif
As the concurrency (number of client threads) increases, throughput also increases; this is what we call "scalability". At some point, we have sufficient concurrency to fully utilise all machine resources, and throughput no longer increases with more concurrency, this is expected.
But if you look at the bars marked "10.0.7-pgo" in that graph, you see that the troughput actually dramatically _decreases_ with increasing concurrency. Such behaviour is rather undesirable. Imagine a real system that gets temporarily overloaded. New requests start arriving faster than they can be satisfied, effectively increasing concurrency. If increasing concurrency causes decreasing throughput, this can get into a negative feedback loop, eventually making the system almost unable to satisfy any requests.
This behaviour, where the throughput does not remain mostly flat as concurrency increases, but instead dramatically decreases, is what I somewhat sloppyly refer to as "the server falling over".
Thanks for the detailed explanation! I hadn't noticed the _drastic_ decrease in throughput and I thought you were referring to something else. Regards Vangelis