You may be using a PC, a workstation or an high end server: knowing CPU, RAM and the other characteristics is not enough to understand the limits and the potentialities of your hardware. In most cases the performances will be determined by the storage, be it an hard disk or an SSD.
When switching from physical to virtual machines, where a low-mid tier server is running several VMs, I/O performances gets even more important. Having the ability to evaluate them is not granted at all, it can even get difficult. Surely, a quick copy of a file from a disk to another or the execution of a dd command on a Linux machine might give you and overlook and a blurry idea of the performances, but it is easy to make a mistake in the considerations, for example by not taking into account the presence of a cache on the controller or the host Operative System caching functions (vSphere, Hyper-V and any other hypervisor) or the guest’s. Often only the sequencial writing/reading speed is evaluated, no clues about the storage bahaviour in terms of number of I/O operations per second are held.
In order to help you to understand how to evaluate those performances we will illustrate out testing methodology as far as hard disks and SSDs are concerned.
The tests that we are about to deal with can be used in other situations and they focus on the intrinsic disks performances as well as their endurance through time and their behaviour with typical work loads like Web Server, File Server or Database, so that you can obtain a concrete preview of the results that will be obtain in practice.
The tool case
The benchmarking most used tool is IOmeter, one of the most versatile and powerful software of the whole hardware testing panorama. Developed by means of a partnership between the main manufacturers, this software allows the creation of multiple agents and advanced configurations capable of simulating any work load on a disk, local or network attached.
Thanks to an easy window it is possible to configure all the technical parameters related to the data transactions between the storage system: the dimension of data, a possible reply, the delay time, the possible alignment of data with the sectors of the disk, the distribution in terms of writing/reading and sequencial/random and, at last, the creation of profiles that incorporate even many single elements which are executed is an adjustable percentage. The tests are usually performed on a disk without partitions and not formatted to prevent from evaluating performances altered by the logic of the Operative System.
It is also important to set in the main options the usage of casual data and not of a specific pattern that might be recognized by the most evoluted controllers and be treated in a privileged manner. In this window the specific zone of the disk to be investigated and its width can be set
using sectors are unit of measure. All the results are saved as a lof file in .csv format which can be easily imported in Excel.
Sequencial transferring
We use another software ebeside IOmeter to evaluate the sequencial transfer properties of a disk: Atto Disk Benchmark, a dedicated software. This tool is incredibly simple to use and makes possible to visualize, thanks to a simple graphical interface, the sequencial transfer speed (both in writing and reading mode) of a specific partition of the disk, with a variable queue of command. To obtain the maximum speed we can select a command queue with a value of 10; results slightly vary with a value higher than 4, but in this case the evaluation is made on the peaked that can be reached by the disk.
The exposed data are often interesting, it is indeed possible to evaluate the maximum transfer speed of variable dimension data, from a few Kb up to 8Mb.The results are validated by IOmeter through a similar configuration but more accurately calibrated, as the image below shows.
We utilize a 2Mb reading (or writing) transfer with a command queue that spans from 1 to 256, so that the adjustment properties of the disk and its peak speed can be evaluated, even with command queues typical of the modern Operative Systems (the mean is 4).
Casual transferring
To evaluate the disk properties in a casual transfer mode, we can configure IOmeter in a way that it can set up in a totally casual manner the command queue, from 1 to 256, with 4Kb data blocks.
In this case we take into account both the pure transfer speed and the number of I/Ops performed. In this case the value of the command queue are usually low (1 or 2), then exponentially going up to 8 or 16 when the disks get stabilized. The percentage reached with a command queue of 4, with respect to the absolute maximum value, represents a great indicator of the quality of the controller that is being used.