Ragnar Lönn, the founder of Load Impact, presents his study on HTTP/2 performance. This slideshow was presented at Velocity NY, Oct. 13, 2015. Included in this presentation was the unveiling of a free application developers can use to benchmark their website performance on HTTP/1.1 vs HTTP/2 - http://http2.loadimpact.com/
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
HTTP/1.1 vs. HTTP/2: A Performance Analysis
1. HTTP/1.1 vs HTTP/2
Ragnar Lönn, Load Impact
ragnar@loadimpact.com
@ragnarlonn
- a performance analysis
Daniel Stenberg, Mozilla
daniel@haxx.se
@bagder
2. Part 2: The Experiment
Objective:
Try to get a sense of real-world
performance impact of going from
HTTP/1.1 to HTTP/2
@loadimpact
3. Approach
● Choose a well-known site
● Download all resources used by main page
● Host everything locally, in controlled
environment
● Measure load times while simulating
different network characteristics
4. Site: www.amazon.com
● ~230-240 resources to get to onload()
● ...but “only” ~10 javascript files
● ~10 unique source hosts
● ~7 Mbyte data
5. MacOS X 10.10.3 (4 CPU cores, 16G RAM)
VMware Fusion
Linux 3.19.0-25 (Ubuntu)
2 CPU cores, 2G RAM
● Nginx 1.9.5/http2
● Shimmer Cat 0.1
● Linux Netem
eth0:1
…
…
...
eth0:n
Chrome
The Setup
8. Remember that:
● HTTP/2 implementations still in their infancy
● Sites are optimized for HTTP/1.1
● Our lab setup is not 100% realistic
So who knows… But still, hey - 60%!
15. The sum of all latencies
Host1/index.html
Host1/script1.js
Host2/script2.js
Host1 RTT Host2 RTT
Conn Req
Conn
Req
Host3 RTT
Host3/image6.png
Req
Conn Req
16. The largest sum of all latencies
index.html
style.css
script1.js
image1.png
image2.png
image3.png
script2.js
image4.png
image5.png
image6.png
image7.png
17. Minimum load time
Minimum theoretical load time =
● The largest “sum of all
latencies” value of all
dependency chains
18. Dependency chains
● # of resources loaded in one dependency
chain step exceeds # of TCP channels that
can be used concurrently
HTTP/1.1 is much disadvantaged when:
This happens quite often
19. Dependency chains
● The client needs to open new connections
HTTP/2 is disadvantaged when:
This happens more often than strictly necessary
today, as it often benefits HTTP/1.1 performance