Mahimahi: A Lightweight Toolkit for Reproducible Web Measurement (Demo)

Ravi Netravali, Anirudh Sivaraman, Keith Winstein, Somak Das, Ameesh Goyal, Hari Balakrishnan
ACM SIGCOMM 2014, Chicago, IL, August 2014

This demo presents a measurement toolkit, Mahimahi, that records websites and replays them under emulated network conditions. Mahimahi is structured as a set of arbitrarily composable UNIX shells. It includes two shells to record and replay Web pages, RecordShell and ReplayShell, as well as two shells for network emulation, DelayShell and LinkShell. In addition, Mahimahi includes a corpus of recorded websites along with benchmark results and link traces ( Mahimahi improves on prior record-and-replay frameworks in three ways. First, it preserves the multi-origin nature of Web pages, present in approximately 98% of the Alexa U.S. Top 500, when re- playing. Second, Mahimahi isolates its own network traffic, allowing multiple instances to run concurrently with no impact on the host machine and collected measurements. Finally, Mahimahi is not inherently tied to browsers and can be used to evaluate many different applications. A demo of Mahimahi recording and replaying a Web page over an emulated link can be found at The source code and instructions to use Mahimahi are available at

[PDF (153KB)]

Bibtex Entry:

   author =       "Ravi Netravali and Anirudh Sivaraman and Keith Winstein and Somak Das and Ameesh Goyal and Hari Balakrishnan",
   title =        "{Mahimahi: A Lightweight Toolkit for Reproducible Web Measurement (Demo)}",
   booktitle =    {ACM SIGCOMM 2014},
   year =         {2014},
   month =        {August},
   address =      {Chicago, IL}