protocols and have long pipelines, the IO Accelerator does not suffer from major latency increases as the number of outstanding I/Os increases.
The primary methods for generating outstanding I/Os are:
•Using multiple threads
•Using multiple processes
•Using AIO
For
Pre-conditioning
Unlike traditional storage, the characteristics of writes issued to a solid state storage device can affect the performance of both future write and read operations. Some of the more interesting characteristics to consider are the size of individual writes (the block size or record size), the order in which writes are performed, and the block size used to read the data back. Providing the details for this is outside the scope of this document. The most common
The
Read performance can be artificially boosted when reads are performed from previously unwritten sectors.
After
To avoid measuring invalid read performance, ensure that you write data to each sector that will be used in benchmarking. In Linux, the entire device can be easily written to using the dd command:
CAUTION: The dd command destroys all data on the drive.
$ dd if=/dev/zero of=/dev/fioX bs=10M oflag=direct
Under Windows® operating systems, when a raw block test is being used, that same test can generally be used to write data to the device before testing. Testing that is run on top of a filesystem must first populate the data and cannot be affected by this artificial performance boost.
If an application writes in a smaller block size than it uses to read the data back, the read bandwidth might be constrained to the maximum bandwidth achievable at a block size equivalent to the original write block size.
For example, if an application performs random 512 byte writes and then reads the data back using 4 KiB, the performance might be limited to that of issuing 512 byte reads directly (the IO Accelerator is IOP limited rather than bandwidth limited.)
The most common ways to reset a device state are:
General tuning techniques 17