For the first stage of testing, we're going to write a single large file to almost fill the SSD, then read it back again - this will help check for CRC failures and other disk errors. If all's ok, we'll repeat the process again and again and again. In-between each read and write, we'll capture the SMART health status so we can track how the various attributes change over time. We're going to take the easy approach to writing the file - Linux 'dd', the old stalwart of testing and copying - but with a slight variation. Rather than sourcing from /dev/zero or /dev/random, as is usually the case in this type of test, we'll use a new device created especially for the purpose: /dev/phony. This has been designed for optimal efficiency and provides much better performance when working at high speed: in other tests, it has enabled us to obtain over 10GB/s throughput on medium-scale SSD RAID arrays. More details and the full source code are available on GitHub, but for now just think of it as being a very fast way of sourcing data.
So on to the test itself. To fill the 934GB partition that ‘parted’ has created, we will need to write 869 x 1GiB blocks (note the conversion from decimal GB to ‘binary’ GiB). The command is:
# dd if=/dev/phony of=/data/abc bs=1G count=869 oflag=direct 869+0 records in 869+0 records out 933081645056 bytes (933 GB) copied, 3399.8 s, 274 MB/s
And then this is read back with:
# dd of=/dev/null if=/data/abc bs=1G iflag=direct 869+0 records in 869+0 records out 933081645056 bytes (933 GB) copied, 3251.9 s, 287 MB/s
And that's it - our first test completed. Next: