Networks and distributed storage allow data and storage space to be shared between devices located anywhere a connection is available. These implementations may range from a single machine offering a shared drive over a home network to an enterprise-class cloud storage array with multiple copies of data distributed throughout the world. Larger implementations may incorporate Network Attached Storage (NAS) devices, Storage Area Network (SAN) devices, and other configurations of storage elements and controllers in order to provide data and manage its flow. Improvements in distributed storage have given rise to a cycle where applications demand increasing amounts of data delivered with reduced latency, greater reliability, and greater throughput. Building out a storage architecture to meet these expectations enables the next generation of applications, which is expected to bring even greater demand.
In order to provide storage solutions that meet a customer's needs and budget, it is not sufficient to blindly add hardware. Instead, it is increasingly beneficial to seek out and reduce bottlenecks, limitations in one aspect of a system that prevent other aspects from operating at their full potential. For example, an administrator may desire to know whether adding additional storage devices to a storage system will improve performance or whether moving data sets between devices can deliver the same benefits without adding hardware. An administrator may also want to know how much of a performance impact to expect if another application is hosted on a storage system. As another example, as costs of solid-state devices have come down, administrators are being asked to identify data that should be transitioned from magnetic hard disk drives to solid-state devices in order to maximize performance.
Accordingly, a need exists for improved performance tracking and analysis techniques capable of providing a more accurate assessment of performance under real-world conditions. In particular, systems and methods for comparing storage system performance against realistic performance benchmarks may provide a more comprehensive picture that enables administrators to reduce bottlenecks and to improve data access speeds. Thus, while existing techniques for storage system benchmarking have been generally adequate, the techniques described herein provide improved accuracy and efficiency.