Mahimahi: Accurate Record-and-Replay for HTTP Ravi - - PowerPoint PPT Presentation

mahimahi accurate record and replay for http
SMART_READER_LITE
LIVE PREVIEW

Mahimahi: Accurate Record-and-Replay for HTTP Ravi - - PowerPoint PPT Presentation

Mahimahi: Accurate Record-and-Replay for HTTP Ravi Netravali * , Anirudh Sivaraman * , Somak Das * , Ameesh Goyal * , Keith Winstein , James Mickens , and


slide-1
SLIDE 1

Mahimahi: ¡ ¡ Accurate ¡Record-­‑and-­‑Replay ¡for ¡HTTP ¡

Ravi ¡Netravali*, ¡Anirudh ¡Sivaraman*, ¡Somak ¡Das*, ¡Ameesh ¡ Goyal*, ¡Keith ¡Winstein†, ¡James ¡Mickens‡, ¡and ¡Hari ¡Balakrishnan* ¡

¡ *MIT ¡CSAIL, ¡†Stanford ¡University, ¡‡Harvard ¡University ¡

slide-2
SLIDE 2

HTTP ¡is ¡Everywhere ¡

IniNally ¡developed ¡for ¡web ¡browsing ¡(browsers) ¡

Instant ¡messaging ¡ Video ¡streaming ¡ Mobile ¡applica7ons ¡

slide-3
SLIDE 3
  • HTTP ¡Client ¡Apps ¡updated ¡frequently ¡

¡

¡

Mobile ¡apps ¡updated ¡monthly ¡

HTTP ¡Performance ¡MaTers ¡

¡

  • New ¡Mul7plexing ¡Protocols: ¡HTTP/2.0, ¡SPDY, ¡QUIC ¡

Browsers ¡built ¡every ¡6 ¡weeks ¡

¡

  • New ¡Conges7on ¡Control: ¡TCP ¡Fast ¡Open, ¡IW10, ¡PRECONNECT ¡

¡

  • Modifica7ons ¡to ¡HTTP: ¡Pipelining, ¡Persistent ¡ConnecNons ¡
slide-4
SLIDE 4

Problem ¡

¡ ¡Difficult ¡to ¡evaluate ¡changes ¡in ¡controlled ¡seangs ¡

  • Google’s ¡web-­‑page-­‑replay ¡

¡

  • Telerik’s ¡Fiddler ¡

¡

Test ¡with ¡Live ¡Users ¡

Shortcomings ¡

  • Not ¡accurate ¡
  • No ¡isolaNon ¡

Record-­‑and-­‑Replay ¡Tools ¡

  • Not ¡scalable ¡
  • Difficult ¡in ¡early ¡development ¡
  • Hard ¡to ¡understand ¡why ¡

Current ¡Approaches ¡

browser1 ¡ browser2 ¡ HTTP ¡ Proxy ¡

slide-5
SLIDE 5

Mahimahi: ¡Accurate ¡Record-­‑and-­‑ Replay ¡for ¡HTTP ¡

3 ¡Goals ¡

MulN-­‑server ¡emulaNon ¡

¡

– Accuracy ¡

¡

– Isola7on ¡

Use ¡private ¡network ¡namespaces ¡

¡ ¡ ¡

¡

– Composability ¡

Structure ¡components ¡as ¡UNIX ¡shells ¡

¡ ¡ ¡

slide-6
SLIDE 6

Rest ¡of ¡This ¡Talk ¡

  • Mahimahi ¡

– Design ¡ – Goals ¡

  • Case ¡Studies ¡

– EvaluaNng ¡Web ¡mulNplexing ¡protocols ¡

  • SPDY ¡1.15-­‑4.93x ¡worse ¡than ¡OpNmal ¡

¡ – Improving ¡Web ¡performance ¡with ¡Cumulus ¡

  • Cumulus ¡outperforms ¡SPDY ¡by ¡1.07-­‑3.60x ¡
slide-7
SLIDE 7

Design ¡

¡ Record ¡and ¡ Replay ¡ ¡

RecordShell ¡ ¡ ReplayShell ¡

¡ Network ¡ EmulaNon ¡ ¡

DelayShell ¡

¡

LinkShell ¡

¡

LossShell ¡

private ¡network ¡namespace ¡ ¡ Browser ¡

¡ Ferry ¡can ¡implement ¡arbitrary ¡ policies ¡to ¡handle ¡packets: ¡

  • Record ¡traffic ¡
  • Serve ¡recorded ¡content ¡
  • Delay ¡packets ¡

¡

Ferry ¡

5 ¡main ¡tools ¡

ingress-­‑1 ¡ egress-­‑1 ¡ ingress-­‑n ¡ egress-­‑n ¡

… ¡ … ¡

slide-8
SLIDE 8

ReplayShell ¡

Replay ¡recorded ¡traffic ¡locally ¡

¡ private ¡network ¡namespace ¡ ¡ Browser ¡ ingress-­‑1 ¡ egress-­‑1 ¡ ingress-­‑n ¡ egress-­‑n ¡

… …

Apache ¡ Server ¡ Apache ¡ Server ¡ Apache ¡ Server ¡

  • Mirror ¡server ¡side ¡of ¡

app ¡locally ¡

– Preserve ¡recorded ¡ server ¡distribuNon ¡ – Transparent ¡

slide-9
SLIDE 9

DelayShell/LinkShell ¡

  • DelayShell ¡(min ¡RTT) ¡

– Release ¡packets ¡ aker ¡specified ¡delay ¡

¡

  • LinkShell ¡(link ¡rates) ¡

– Release ¡packets ¡ based ¡on ¡traces ¡ – Live ¡graphing ¡of ¡ network ¡usage/ queuing ¡delay ¡

Emulate ¡fixed ¡propagaNon ¡delay ¡or ¡fixed/variable-­‑rate ¡links ¡

¡ private ¡network ¡namespace ¡ ¡ Browser ¡ ingress-­‑1 ¡ egress-­‑1 ¡ ingress-­‑n ¡ egress-­‑n ¡

… …

Internet ¡ Uplink ¡ Queue ¡ Downlink ¡ Queue ¡

slide-10
SLIDE 10

Accuracy ¡

ReplayShell ¡correctly ¡ emulates ¡mulN-­‑server ¡apps ¡ ¡

ReplayShell, ¡mulN-­‑server: ¡12.4% ¡ ¡ ¡ web-­‑page-­‑replay: ¡36.7% ¡

More ¡accurate ¡ measurements ¡

0.25 0.5 0.75 1 30 60 90 120 150 Cumulative Proportion Absolute Value of Relative Percent Error ReplayShell, multi-server web-page-replay

slide-11
SLIDE 11

IsolaNon ¡

0.25 0.5 0.75 1 1 2 3 Cumulative Proportion Relative Percent Error DelayShell 0 ms LinkShell 1000 Mbits/s

User ¡Computer ¡ DelayShell ¡50 ¡ms ¡ Browser ¡1 ¡ Browser ¡3 ¡

Each ¡shell ¡creates ¡a ¡new ¡network ¡namespace ¡ ¡

RTT ¡= ¡X ¡ milliseconds ¡ Mul7ple ¡instances ¡in ¡parallel ¡ Low ¡overhead ¡ DelayShell: ¡0.33% ¡ LinkShell: ¡0.31% ¡ DelayShell ¡10 ¡ms ¡ Browser ¡2 ¡ X ¡ ¡+ ¡10 ¡ms ¡

slide-12
SLIDE 12

Composability ¡

Each ¡tool ¡is ¡structured ¡as ¡a ¡UNIX ¡shell ¡

– Unmodified ¡apps ¡can ¡run ¡within ¡each ¡shell ¡ – Shells ¡can ¡be ¡arbitrarily ¡nested ¡within ¡one ¡another ¡

slide-13
SLIDE 13

Case ¡Studies ¡

  • EvaluaNng ¡web ¡mulNplexing ¡protocols ¡

– SPDY ¡

  • MulNplexed ¡streams ¡
  • Header ¡compression ¡
  • Server ¡push ¡

– QUIC ¡

  • MulNplexing ¡without ¡head ¡of ¡line ¡blocking ¡
  • 0-­‑1 ¡round ¡trips ¡to ¡establish ¡secure ¡connecNon ¡(uses ¡UDP) ¡

¡

  • Reducing ¡page ¡load ¡Nmes ¡with ¡Cumulus ¡
slide-14
SLIDE 14

MulNplexing ¡Protocol ¡Setup ¡

  • HTTP ¡à ¡default ¡Apache ¡servers ¡

minimumRTT ¡+ ¡(siteSize/linkRate) ¡+ ¡browserTime ¡ ¡

Time ¡between ¡first ¡ client ¡request ¡and ¡first ¡ byte ¡of ¡response ¡ Time ¡to ¡transfer ¡all ¡ bytes ¡for ¡web ¡page ¡over ¡ link ¡with ¡rate ¡‘linkRate’ ¡ Time ¡for ¡browser ¡to ¡ process ¡all ¡responses ¡ and ¡render ¡page ¡

¡

  • SPDY ¡à ¡Apache ¡servers ¡+ ¡mod_spdy ¡module ¡

¡

  • QUIC ¡à ¡replace ¡Apache ¡with ¡QUIC ¡test ¡servers ¡

¡

  • OpNmal ¡
slide-15
SLIDE 15

EvaluaNng ¡MulNplexing ¡Protocols ¡

MulNplexing ¡protocols ¡are ¡subopNmal ¡

– SubopNmality ¡increases ¡as ¡RTT ¡increases ¡

0.25 0.5 0.75 1 5 10 15 20 25 Cumulative Proportion Page Load Time (s) 25 Mbits/s link with minimum RTT of 120 ms Optimal SPDY QUIC-toy HTTP/1.1 SPDY: 2.39x Optimal 0.25 0.5 0.75 1 5 10 15 20 25 Cumulative Proportion Page Load Time (s) 25 Mbits/s link with minimum RTT of 300 ms Optimal SPDY QUIC-toy HTTP/1.1

SPDY: 4.93x Optimal

0.25 0.5 0.75 1 5 10 15 20 25 Cumulative Proportion Page Load Time (s) 25 Mbits/s link with minimum RTT of 30 ms Optimal SPDY QUIC-toy HTTP/1.1 SPDY: 1.15x Optimal

slide-16
SLIDE 16

Understanding ¡SubopNmality ¡

HTTP ¡Request ¡ HTTP ¡Response ¡

Long-­‑delay ¡Link ¡ Web ¡ Servers ¡ Client ¡ Browser ¡ HTTP ¡requests ¡become ¡serialized ¡à à ¡link ¡not ¡fully ¡u7lized ¡

slide-17
SLIDE 17

Cumulus ¡

Long-­‑delay ¡Link ¡ Web ¡ Servers ¡

Remote ¡ Proxy ¡ Bulk ¡ Response ¡ HTTP ¡ Request ¡

Short-­‑delay ¡ Link ¡ Client ¡ Browser ¡

Local ¡ Proxy ¡

Reduces ¡the ¡effec7ve ¡RTT ¡

Headless ¡browser ¡ running ¡on ¡well-­‑ provisioned ¡server ¡ Transparent ¡HTTP ¡ caching ¡proxy ¡running ¡

  • n ¡user’s ¡machine ¡

Implemented ¡ Using ¡RecordShell ¡

slide-18
SLIDE 18

EvaluaNng ¡Cumulus ¡

Performance ¡stays ¡close ¡to ¡ OpNmal ¡as ¡RTTs ¡increase ¡

  • Cumulus ¡incurs ¡only ¡one ¡

RTT ¡on ¡the ¡long-­‑delay ¡link ¡ ¡(reduces ¡effecNve ¡RTT) ¡

1 2 3 4 5 60 120 180 240 300 Ratio with Optimal Minimum RTT (ms) 14 Mbits/s link Cumulus SPDY QUIC-toy HTTP/1.1

slide-19
SLIDE 19

Other ¡Uses ¡

  • EvaluaNng ¡mobile ¡apps ¡over ¡wireless ¡networks ¡

– Shuo ¡Deng ¡

¡

  • EmulaNng ¡mobile ¡mulN-­‑homing ¡(MPTCP) ¡

– Shuo ¡Deng ¡

  • Replaying ¡streamed ¡video ¡

– Devasia ¡Manuel, ¡Victor ¡Vasiliev, ¡Saunders ¡Hayes ¡ ¡

¡

  • Measuring ¡speed ¡index ¡

¡ ¡

slide-20
SLIDE 20

Conclusion ¡

  • Mahimahi ¡records ¡HTTP ¡traffic ¡and ¡replays ¡it ¡over ¡emulated ¡networks ¡
  • Composability-­‑ ¡UNIX ¡shells ¡
  • Accuracy-­‑ ¡mulN-­‑server ¡emulaNon ¡
  • Case ¡studies ¡using ¡Mahimahi ¡

¡

hOp://mahimahi.mit.edu ¡ ¡mahimahi@mit.edu ¡

¡

  • Isola7on-­‑ ¡private ¡network ¡namespaces ¡
  • Web ¡mulNplexing ¡protocols ¡are ¡subopNmal ¡
  • Cumulus ¡reduces ¡effecNve ¡RTT ¡to ¡lower ¡page ¡load ¡Nmes ¡