mahimahi accurate record and replay for http
play

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


  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 ¡

  2. HTTP ¡is ¡Everywhere ¡ IniNally ¡developed ¡for ¡web ¡browsing ¡(browsers) ¡ Instant ¡messaging ¡ Video ¡streaming ¡ Mobile ¡applica7ons ¡

  3. HTTP ¡Performance ¡MaTers ¡ • HTTP ¡Client ¡Apps ¡ updated ¡frequently ¡ ¡ ¡ Browsers ¡built ¡every ¡6 ¡weeks ¡ Mobile ¡apps ¡updated ¡monthly ¡ ¡ • New ¡Mul7plexing ¡Protocols : ¡ HTTP/2.0, ¡SPDY, ¡QUIC ¡ ¡ • Modifica7ons ¡to ¡HTTP : ¡Pipelining, ¡Persistent ¡ConnecNons ¡ ¡ • New ¡Conges7on ¡Control : ¡ TCP ¡Fast ¡Open, ¡IW10, ¡PRECONNECT ¡

  4. Problem ¡ ¡ ¡Difficult ¡to ¡evaluate ¡changes ¡in ¡controlled ¡seangs ¡ Current ¡Approaches ¡ Shortcomings ¡ • Not ¡scalable ¡ Test ¡with ¡Live ¡Users ¡ • Difficult ¡in ¡early ¡development ¡ • Hard ¡to ¡understand ¡ why ¡ Record-­‑and-­‑Replay ¡Tools ¡ • Not ¡accurate ¡ • No ¡isolaNon ¡ • Google’s ¡web-­‑page-­‑replay ¡ ¡ • Telerik’s ¡Fiddler ¡ browser1 ¡ HTTP ¡ ¡ Proxy ¡ browser2 ¡

  5. Mahimahi: ¡Accurate ¡Record-­‑and-­‑ Replay ¡for ¡HTTP ¡ 3 ¡Goals ¡ ¡ – Accuracy ¡ MulN-­‑server ¡emulaNon ¡ ¡ – Isola7on ¡ Use ¡private ¡network ¡namespaces ¡ ¡ ¡ ¡ ¡ – Composability ¡ Structure ¡components ¡as ¡UNIX ¡shells ¡ ¡ ¡ ¡

  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 ¡

  7. Design ¡ ¡ 5 ¡main ¡tools ¡ ¡ DelayShell ¡ RecordShell ¡ Record ¡and ¡ Network ¡ ¡ ¡ LinkShell ¡ Replay ¡ EmulaNon ¡ ReplayShell ¡ ¡ LossShell ¡ ¡ ¡ ¡ Ferry ¡ Ferry ¡can ¡implement ¡arbitrary ¡ egress-­‑1 ¡ policies ¡to ¡handle ¡packets: ¡ ingress-­‑1 ¡ Browser ¡ • Record ¡traffic ¡ … ¡ … ¡ • Serve ¡recorded ¡content ¡ • Delay ¡packets ¡ egress-­‑n ¡ ingress-­‑n ¡ ¡ private ¡network ¡namespace ¡ ¡

  8. ReplayShell ¡ Replay ¡recorded ¡traffic ¡locally ¡ ¡ • Mirror ¡server ¡side ¡of ¡ Apache ¡ app ¡locally ¡ Server ¡ egress-­‑1 ¡ ingress-­‑1 ¡ – Preserve ¡recorded ¡ Browser ¡ … … server ¡distribuNon ¡ Apache ¡ Server ¡ – Transparent ¡ egress-­‑n ¡ ingress-­‑n ¡ Apache ¡ Server ¡ private ¡network ¡namespace ¡ ¡

  9. DelayShell/LinkShell ¡ Emulate ¡fixed ¡propagaNon ¡delay ¡or ¡fixed/variable-­‑rate ¡links ¡ ¡ • DelayShell ¡(min ¡RTT) ¡ – Release ¡packets ¡ Uplink ¡ aker ¡specified ¡delay ¡ Queue ¡ egress-­‑1 ¡ ingress-­‑1 ¡ ¡ Browser ¡ Internet ¡ … … • LinkShell ¡(link ¡rates) ¡ Downlink ¡ – Release ¡packets ¡ Queue ¡ based ¡on ¡traces ¡ egress-­‑n ¡ ingress-­‑n ¡ – Live ¡graphing ¡of ¡ network ¡usage/ queuing ¡delay ¡ private ¡network ¡namespace ¡ ¡

  10. Accuracy ¡ More ¡accurate ¡ ReplayShell ¡correctly ¡ measurements ¡ emulates ¡mulN-­‑server ¡apps ¡ ¡ 1 ReplayShell, ¡mulN-­‑server: ¡12.4% ¡ ¡ 0.75 Cumulative Proportion ¡ web-­‑page-­‑replay: ¡36.7% ¡ 0.5 0.25 ReplayShell, multi-server web-page-replay 0 0 30 60 90 120 150 Absolute Value of Relative Percent Error

  11. IsolaNon ¡ Each ¡shell ¡creates ¡a ¡new ¡network ¡namespace ¡ ¡ Mul7ple ¡instances ¡in ¡parallel ¡ Low ¡overhead ¡ 1 Browser ¡3 ¡ 0.75 DelayShell ¡50 ¡ms ¡ Cumulative Proportion DelayShell: ¡0.33% ¡ Browser ¡2 ¡ X ¡ ¡+ ¡10 ¡ms ¡ 0.5 LinkShell: ¡0.31% ¡ DelayShell ¡10 ¡ms ¡ 0.25 Browser ¡1 ¡ DelayShell 0 ms LinkShell 1000 Mbits/s 0 0 1 2 3 RTT ¡= ¡X ¡ User ¡Computer ¡ Relative Percent Error milliseconds ¡

  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 ¡

  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 ¡

  14. MulNplexing ¡Protocol ¡Setup ¡ • HTTP ¡ à ¡default ¡Apache ¡servers ¡ ¡ • SPDY ¡ à ¡Apache ¡servers ¡+ ¡mod_spdy ¡module ¡ ¡ • QUIC ¡ à ¡replace ¡Apache ¡with ¡QUIC ¡test ¡servers ¡ ¡ • OpNmal ¡ minimumRTT ¡+ ¡(siteSize/linkRate) ¡+ ¡browserTime ¡ ¡ Time ¡between ¡first ¡ Time ¡to ¡transfer ¡all ¡ Time ¡for ¡browser ¡to ¡ client ¡request ¡and ¡first ¡ bytes ¡for ¡web ¡page ¡over ¡ process ¡all ¡responses ¡ byte ¡of ¡response ¡ link ¡with ¡rate ¡‘linkRate’ ¡ and ¡render ¡page ¡

  15. EvaluaNng ¡MulNplexing ¡Protocols ¡ 25 Mbits/s link with minimum RTT of 30 ms 25 Mbits/s link with minimum RTT of 120 ms 25 Mbits/s link with minimum RTT of 300 ms 1 1 1 0.75 0.75 0.75 Cumulative Proportion Cumulative Proportion Cumulative Proportion 0.5 0.5 0.5 SPDY: 1.15x Optimal SPDY: 2.39x Optimal SPDY: 4.93x Optimal 0.25 0.25 0.25 Optimal Optimal Optimal SPDY SPDY SPDY QUIC-toy QUIC-toy QUIC-toy HTTP/1.1 HTTP/1.1 HTTP/1.1 0 0 0 0 5 10 15 20 25 0 5 10 15 20 25 0 5 10 15 20 25 Page Load Time (s) Page Load Time (s) Page Load Time (s) MulNplexing ¡protocols ¡are ¡subopNmal ¡ – SubopNmality ¡increases ¡as ¡RTT ¡increases ¡

  16. Understanding ¡SubopNmality ¡ HTTP ¡Request ¡ HTTP ¡Response ¡ Web ¡ Servers ¡ Client ¡ Browser ¡ Long-­‑delay ¡Link ¡ HTTP ¡requests ¡become ¡serialized ¡ à à ¡link ¡not ¡fully ¡u7lized ¡

  17. Cumulus ¡ Transparent ¡HTTP ¡ caching ¡proxy ¡running ¡ Reduces ¡the ¡effec7ve ¡RTT ¡ on ¡user’s ¡machine ¡ Local ¡ Implemented ¡ Proxy ¡ HTTP ¡ Using ¡RecordShell ¡ Request ¡ Headless ¡browser ¡ running ¡on ¡well-­‑ provisioned ¡server ¡ Bulk ¡ Response ¡ Remote ¡ Web ¡ Proxy ¡ Servers ¡ Client ¡ Browser ¡ Short-­‑delay ¡ Long-­‑delay ¡Link ¡ Link ¡

  18. EvaluaNng ¡Cumulus ¡ 14 Mbits/s link 5 Cumulus SPDY QUIC-toy 4 Performance ¡stays ¡close ¡to ¡ HTTP/1.1 Ratio with Optimal OpNmal ¡as ¡RTTs ¡increase ¡ 3 Cumulus ¡incurs ¡only ¡one ¡ • RTT ¡on ¡the ¡long-­‑delay ¡link ¡ 2 ¡(reduces ¡effecNve ¡RTT) ¡ 1 0 0 60 120 180 240 300 Minimum RTT (ms)

  19. Other ¡Uses ¡ • Measuring ¡speed ¡index ¡ ¡ • EvaluaNng ¡mobile ¡apps ¡over ¡wireless ¡networks ¡ ¡ – Shuo ¡Deng ¡ ¡ • EmulaNng ¡mobile ¡mulN-­‑homing ¡(MPTCP) ¡ – Shuo ¡Deng ¡ • Replaying ¡streamed ¡video ¡ – Devasia ¡Manuel, ¡Victor ¡Vasiliev, ¡Saunders ¡Hayes ¡ ¡ ¡

  20. Conclusion ¡ • Mahimahi ¡records ¡HTTP ¡traffic ¡and ¡replays ¡it ¡over ¡emulated ¡networks ¡ • Accuracy -­‑ ¡mulN-­‑server ¡emulaNon ¡ • Isola7on -­‑ ¡ private ¡network ¡namespaces ¡ • Composability -­‑ ¡UNIX ¡shells ¡ • Case ¡studies ¡using ¡Mahimahi ¡ • Web ¡mulNplexing ¡protocols ¡are ¡subopNmal ¡ • Cumulus ¡reduces ¡effecNve ¡RTT ¡to ¡lower ¡page ¡load ¡Nmes ¡ ¡ hOp://mahimahi.mit.edu ¡ ¡mahimahi@mit.edu ¡ ¡

Recommend


More recommend