Vangelis Katsikaros <vkatsikaros@xxxxxxxx> 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".