I decided to get down to testing the other night, on both a non-TRIM and TRIM drive. But at this point, I'm thinking that I need to find a new method of dirtying a drive, because based on the results, what I'm doing is not effective enough. For the sake of it being configurable, I've been using Iozone, using this command:
iozone -a -i 0 -i 1 -n 16G -g 16G -q 4k -f /mnt/ssdtest/
What this does is create a 16GB file on the drive, and uses it
for the sake of testing. The file has to be so large because otherwise, it would use the available RAM. Choosing 16GB makes sure there's no chance of that happening, since it would skew the results otherwise.
To dirty the drives, I ran a script that copied over enough data to 100% fill the drive. This data consisted of 590,519 files and 48,603 folders. Once done, it purged all the data, and then rinsed and repeated for a total of ten rounds.
Here are the results:
Kingston SSDNow M Series 80GB (TRIM)
Clean Run #1: 92.46MB/s Write | 229.78MB/s Read
Clean Run #2: 93.18MB/s Write | 228.63MB/s Read
Clean Run #3: 93.36MB/s Write | 229.06MB/s Read
Dirty Run #1: 85.21MB/s Write | 248.17MB/s Read
Dirty Run #2: 83.89MB/s Write | 254.44MB/s Read
Dirty Run #3: 84.01MB/s Write | 248.79MB/s Read
Kingston SSDNow M Series 80GB (non-TRIM)
Clean Run #1: 93.23MB/s Write | 251.48MB/s Read
Clean Run #2: 93.08MB/s Write | 238.98MB/s Read
Clean Run #3: 94.03MB/s Write | 237.55MB/s Read
Dirty Run #1: 91.51MB/s Write | 255.28MB/s Read
Dirty Run #2: 87.71MB/s Write | 256.24MB/s Read
Dirty Run #3: 83.01MB/s Write | 252.43MB/s Read
I should note that the "Clean" drives were made clean with the help of HDD Erase's Secure Erase feature, restoring them to a factory condition. Also, some of these results might
vary a bit more than they should because I was actually using
the PC as normal. I didn't touch the drive outside of benchmarking, but I did have a lot going, including a virtual machine.
Interestingly, on both the G1 and G2, I saw 90MB/s+ write speeds, even though the drive is specced for 80MB/s. Also interesting is that on the clean drives, the read speeds are lower than expected.
Then moving over to the dirty drives, the write performance went back to "normal" on both drives after a couple of runs, and the read speeds also evened back out where they should be. Roughly, the third run on each drive delivered results on par with a brand-new drive, so in effect, there was no real gain from TRIM if it was indeed working, because the drives simply were not dirtied enough.
It's almost like I need to find an SSD with a poor algorithm just to figure out if TRIM is working or not :-|