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 ¡ ¡

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend