1

I would like to measure the performance drop-off in solid state drives when the drives are getting close to full capacity. In particular, I would like to benchmark random and sequential read/writes.

Is this possible in IOmeter? How should I configure IOmeter to run a test like this?

2 Answers 2

1

Anandtech had a really, really great article on SSD's, benchmarking, and what they're good for. They used IOmeter to run their benchmarks, and gave some tips as to what kinds of problems they ran in to.

http://www.anandtech.com/storage/showdoc.aspx?i=3531

page 12 describes how they simulated a 'used' drive that has been hammered on a lot. They did this in order to benchmark how much performance would degrade over the life of the drive.

1
  • Thanks! I had read that article earlier, but didn't read that particular page in detail. I'll update this page with detailed instructions.
    – user4552
    May 29, 2009 at 18:37
0

Be prepared to do a lot of testing. I spent a great deal of time trying to understand the relationship between number of writes and write performance of the generally excellent FusionIO devices. The vendor wasn't too helpful in understanding the situation at first.

Remember that the definition of a "free" block can vary. For example, if you wrote to it ever, the storage can't consider it free. Perhaps if you later write to it with all 0's or all 1's, it can flag it as a free block although I have not seen this in practice. I found shocking performance artifacts by creating a logical volume that was only a small portion of the overall storage. Then, creating a logical volume that contained the rest of the storage, writing to it heavily for a half-hour, and deleting the logical volume. To the SSD, these blocks are of course not free. But I had forever destroyed the write performance by doing this test.

By formatting the device with extra "reserved" blocks, the reality of the performance impact was made irrelevant. The FusionIO devices support fast writes because they erase the reserved blocks in the background, and use them for new writes. (The block you overwrote is flagged as free, and later gets erased).

1
  • Good points, but it's worth mentioning that this very situation is what the ATA TRIM command will avoid - it'll allow the filesystem/OS to tell the SSD which blocks are actually free, and the SSD can then go through and delete them pre-emptively. Jul 23, 2009 at 22:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .