Mosbench is a set of application benchmarks designed to measure scalability of operating systems. It consists of applications that previous work has shown not to scale well on Linux and applications that are designed for parallel execution and are kernel intensive. The applications and workloads are chosen to stress important parts of many kernel components.
Mosbench includes Exim, a mail server; Memcached, an object cache; Apache, a web server; PostgreSQL, a SQL database; gmake, a parallel build system; psearchy, a parallel text indexer; and Metis, a multicore MapReduce library.
Publications
An Analysis of Linux Scalability to Many Cores
Abstract BibTeX PDF
Silas Boyd-Wickizer, Austin T. Clements, Yandong Mao, Aleksey
Pesterev, M. Frans Kaashoek, Robert Morris, and Nickolai
Zeldovich.
In the Proceedings of the 9th USENIX Symposium on Operating
Systems Design and Implementation (OSDI '10), Vancouver, Canada,
October 2010.
Scalable Address Spaces Using RCU Balanced Trees
Abstract BibTeX PDF
Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich.
In the Proceedings of the 17th International Conference on
Architectural Support for Programming Languages and Operating
Systems (ASPLOS), London, UK, March 2012.
Improving network connection locality on multicore systems
Abstract BibTeX PDF
Aleksey Pesterev, Jacob Strauss, Nickolai Zeldovich, and
Robert T. Morris.
In the Proceedings of the ACM EuroSys Conference,
Bern, Switzerland, April 2012.
Non-scalable locks are dangerous
Abstract BibTeX PDF
Silas Boyd-Wickizer, M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich.
In the Proceedings of the Linux Symposium, Ottawa, Canada, July 2012.
Software
- $ git clone https://pdos-csail-mit-edu.ezproxy.canberra.edu.au/mosbench/mosbench.git
- The MOSBENCH driver and application suite. See the top-level README for details on how to run the benchmark.
- $ git clone git://g.csail.mit.edu/pk.git
- The Patched Linux 2.6.35-rc5 Kernel. Our changes are divided among 18
branches. The 'pk' branch is a merge of those branches.
The .config we use is also available.
This repository contains Linux 2.6.37 modified for scalable address spaces. The 'rcuvm-fault-lock', 'rcuvm-hybrid', and 'rcuvm-pure' branches correspond to the three refinements in the paper.
This repository contains MCS lock implementations for Linux 2.6.39. The 'mcs-anonvma', 'mcs-as', and 'mcs-dentry' branches correspond to the experiments in the paper.
NOTE: The latest Linux kernels (2.6.38-rc5 and newer) include many VFS scalability improvements that our patches aim to provide. We recommend trying those kernels if you're interested in a scalable VFS.
- $ git clone https://pdos-csail-mit-edu.ezproxy.canberra.edu.au/mosbench/ixgbe.git
- The patched IXGBE 2.0.84.9 driver. Our changes are divided among multiple branches. The 'unified' branch is a merge of those branches.
- $ git clone https://pdos-csail-mit-edu.ezproxy.canberra.edu.au/mosbench/rcuvm.git
- Supplementary Scalable Address Spaces files: Kernel and MOSBENCH configurations, build scripts, benchmark drivers, and microbenchmarks. Also includes a copy of the Bonsai source.
- $ git clone https://pdos-csail-mit-edu.ezproxy.canberra.edu.au/mosbench/parsec.git
- The Parsec 2.1 benchmark suite with modifications for Scalable Address Spaces on the 'rcuvm' branch.
- $ git clone git://g.csail.mit.edu/lock-bench.git
- Benchmarks to stress various spin locks in the Linux kernel.