While evaluating the performance of a server application, we eventually (and hopefully) run up against the most fundamental constraining factor: the network. Cloud providers tend to offer somewhat handwavy guidance on networking constraints, especially when compared to the exhaustive literature explaining the quotas for RAM, CPU, and I/O. While working on an unrelated stress test in EC2, we were surprised by some results that led us down the path of investigating EC2 network capacity claims, resulting in this writeup. EC2 documentation describes network performance in terms of maximum available bandwidth.
Instances using Enhanced Networking can have bandwidth up to 25 Gbit /s. This is great news for a video streaming service, but what does this maximum bandwidth mean for a transactional application, such as an HTTP server?
Do we add up all payload and protocol overhead to see if fits the bandwidth budget? To answer this question, we have to look at how lower level protocolsâlike TCP and IPâhandle HTTP transactions.
Source: stressgrid.com