@InProceedings{anderson:buttress, author = {Eric Anderson and Mahesh Kallahalla and Mustafa Uysal and Ram Swaminathan}, title = {Buttress: A toolkit for flexible and high fidelity {I/O} benchmarking}, booktitle = {Proceedings of the USENIX FAST '04 Conference on File and Storage Technologies}, year = {2004}, month = {March}, pages = {45--58}, organization = {Hewlett-Packard Laboratories}, publisher = {USENIX Association}, address = {San Francisco, CA}, URL = {http://www.usenix.org/events/fast04/tech/anderson.html}, keywords = {benchmarking software, performance analysis, I/O access patterns, I/O workloads, pario-bib}, abstract = {In benchmarking I/O systems, it is important to generate, accurately, the I/O access pattern that one is intending to generate. However, timing accuracy ( issuing I/Os at the desired time) at high I/O rates is difficult to achieve on stock operating systems. We currently lack tools to easily and accurately generate complex I/O workloads on modern storage systems. As a result, we may be introducing substantial errors in observed system metrics when we benchmark I/O systems using inaccurate tools for replaying traces or for producing synthetic workloads with known inter-arrival times. \par In this paper, we demonstrate the need for timing accuracy for I/O benchmarking in the context of replaying I/O traces. We also quantitatively characterize the impact of error in issuing I/Os on measured system parameters. For instance, we show that the error in perceived I/O response times can be as much as +350% or -15% by using naive benchmarking tools that have timing inaccuracies. To address this problem, we present Buttress, a portable and flexible toolkit that can generate I/O workloads with microsecond accuracy at the I/O throughputs of high-end enterprise storage arrays. In particular, Buttress can issue I/O requests within 100µs of the desired issue time even at rates of 10000 I/Os per second (IOPS).}, comment = {Looks like a really cool piece of software. Generates I/O workloads by replaying I/O traces.} }