23 January 2019
Bottlenecks are common. SO common! What is a bottleneck, though? You can define a bottleneck in a lot of ways. A common understanding is "what component has the lowest throughput of any component in the system?". This is a very loose definition.
Different system components commonly map incoming requests to different volumes of outgoing requests. That's a pretty big confounder. Resource requirements also vary given a query pattern, or type of request.
Clearly defining a "bottleneck" requires a value with respect to optimize.
In this meetup we'll discuss bottlenecks in terms of total resource consumption per request of interest. We'll touch on basic queueing theory, and move right into definitions of headroom. Looking at the rate of headroom erosion with respect to request volume we'll identify bottlenecks BEFORE they become bottlenecks by measuring the slope of that line.
This allows you to observe real production metrics, without worrying about pairty between that and your staging or load testing environment.