Vroom: Accelerating the Mobile Web with Server-Aided Dependency - - PowerPoint PPT Presentation

vroom accelerating the mobile web with server aided
SMART_READER_LITE
LIVE PREVIEW

Vroom: Accelerating the Mobile Web with Server-Aided Dependency - - PowerPoint PPT Presentation

Vroom: Accelerating the Mobile Web with Server-Aided Dependency Resolution Vaspol Ruamviboonsuk 1 , Ravi Netravali 2 , Muhammed Uluyol 1 , Harsha V. Madhyastha 1 1 University of Michigan, 2 MIT 1 Mobile Web Dominant ... but Slow... 9.85s to


slide-1
SLIDE 1

Vroom: Accelerating the Mobile Web with Server-Aided Dependency Resolution

Vaspol Ruamviboonsuk1, Ravi Netravali2, Muhammed Uluyol1, Harsha V. Madhyastha1

1

1University of Michigan, 2MIT

slide-2
SLIDE 2

Mobile Web Dominant ...

2

Ref: http://gs.statcounter.com/press/mobile-and-tablet-internet-usage-exceeds-desktop-for-first-time-worldwide

“Average load time 14s on 4G” - DoubleClick “9.85s to load median mobile retail sites” - Keynote Systems

but Slow...

slide-3
SLIDE 3

Problem: Slow web page loads

3

Mobile Optimized Popular Pages, State of the Art Phone, Good LTE network

10s

10s 5s

slide-4
SLIDE 4

Simple Example Page

4

<html> … <script src=”script.js”></script> … </html>

a.com/index.html

var img = new Image(); img.src = “b.com/img.jpg”; document.body.appendChild(img); a.com/script.js

index.html script.js img.jpg Dependency Graph

slide-5
SLIDE 5

Loading a Web Page

5

GET a.com HTML Parse HTML GET script.js script.js Execute script.js GET img.jpg img.jpg

Client a.com b.com

Onload

index.html script.js img.jpg

Dependency Graph

slide-6
SLIDE 6

Waiting on CPU blocks network and vice versa

6

Parse HTML Execute script.js

Client

Onload

Network Utilization CPU Utilization

Key to fast page loads: Fully utilize CPU/network

slide-7
SLIDE 7

Proxy Based Solution

7

Client

a.com

Proxy

b.com c.com GET a.com/index.html Stream downloaded resources

Shortcomings

  • Client must trust HTTPS content pushed by proxy
  • Proxy needs access to user’s cookies for all domains

Fetch resources

Web servers must aid client in discovering resources

slide-8
SLIDE 8

Challenges to approach

  • 1. How can web servers discover dependencies?
  • 2. How do web servers inform clients of discovered

dependencies?

  • 3. How should clients use input from servers?

8

slide-9
SLIDE 9

Challenges to approach

  • 1. How can web servers discover dependencies?
  • 2. How do web servers inform clients of discovered

dependencies?

  • 3. How should clients use input from servers?

9

slide-10
SLIDE 10

Inefficient Page Load

10

GET a.com HTML Parse HTML GET script.js script.js Execute script.js GET img.jpg img.jpg

Client a.com b.com

Onload

index.html script.js img.jpg

Dependency Graph

slide-11
SLIDE 11

HTTP/2 Push

11

GET a.com HTML Parse HTML GET script.js script.js Execute script.js GET img.jpg img.jpg

Client a.com b.com

Onload script.js

index.html script.js img.jpg

Dependency Graph

slide-12
SLIDE 12

Push Only Load

12

GET a.com HTML Parse HTML Execute script.js GET img.jpg img.jpg

Client a.com b.com

Onload script.js

index.html script.js img.jpg

Dependency Graph

slide-13
SLIDE 13

GET img.jpg

Dependency Hints

13

GET a.com HTML & b.com/img.jpg Parse HTML Execute script.js img.jpg Client a.com b.com Onload

index.html script.js img.jpg

Dependency Graph

GET img.jpg img.jpg

slide-14
SLIDE 14

Challenges to approach

  • 1. How can web servers discover dependencies?
  • 2. How do web servers inform clients of discovered

dependencies?

  • HTTP/2 Push + Dependency Hints
  • 3. How should clients use input from servers?

14

slide-15
SLIDE 15

Strawman Dependency Resolution

15

foo.com

GET https://foo.com

Drawbacks

  • Back-to-back loads differ
  • Server cannot account for personalization

Response + Push and Hints

a.com b.com c.com

slide-16
SLIDE 16

Combined Offline-Online Discovery

16

Parse HTML Response

foo.com

GET https://foo.com

t0 t1 t2 ...

+

  • Stable dependencies: Intersection of offline loads

Response + Push and Hints

  • Dynamic Content: Online Parsing of HTML
slide-17
SLIDE 17

Personalized Dependencies from Third-party Domains

17

Start Personalized Content?

slide-18
SLIDE 18

Challenges to approach

  • 1. How do web servers discover dependencies?
  • Combine offline and online + Defer to third parties
  • 2. How do web servers inform clients of discovered

dependencies?

  • HTTP/2 Push + Dependency Hints
  • 3. How do clients use input from servers?

18

slide-19
SLIDE 19

Need for Scheduling

19

  • No speedup with “Push All + Fetch ASAP”

○ Contention for access link bandwidth stalls processing

  • Prioritize pushes and fetches of HTML, CSS, and JS

○ Schedule in order of processing ○ Account for 20% of bytes on average

slide-20
SLIDE 20

Vroom scheduler in action

20

T=0 Onload

Fetch all HTML, JS, CSS Parse HTML and CSS, Execute JS Fetch other dependencies

slide-21
SLIDE 21

Results overview

  • Accuracy of dependency discovery

○ Median: 0% false positives and < 5% false negatives

  • Improvements in client perceived performance

○ Speedup over status quo ○ Simple strawmans don't suffice ○ Speedup even with warm caches

21

slide-22
SLIDE 22

Results overview

  • Accuracy of dependency discovery

○ Median: 0% false positives and < 5% false negatives

  • Improvements in client perceived performance

○ Speedup over status quo

○ Simple strawmans don't suffice ○ Speedup even with warm caches

22

slide-23
SLIDE 23

Evaluation Setup

23

slide-24
SLIDE 24

Vroom makes page loads much faster

24

10s Alexa top 50 news and 50 sports sites

slide-25
SLIDE 25

Vroom makes page loads much faster

25

7.5s 10s

slide-26
SLIDE 26

Vroom makes page loads much faster

26

7.5s 10s 7.5s 10s 5s

slide-27
SLIDE 27

Vroom makes page loads much faster

27

7.5s 10s 5s

slide-28
SLIDE 28

Vroom makes page loads much faster

28

7.5s 10s 5s

Visual Improvement

  • Vroom also significantly reduces above-the-fold time

Incremental Deployment

  • Most of Vroom’s benefits achievable with first-party adoption
slide-29
SLIDE 29

Conclusion

  • Vroom: End-to-end solution that fully utilizes CPU/Network
  • Decouples dependency discovery from parsing and execution
  • Decreases median page load time by 5s for popular sites

29