Performance Comparisons – TRIM Speed
Thanks to the plethora of data we have at our disposal from the new suite, I can derive some additional interesting data that nobody seems to have been paying any attention to yet. Have you ever deleted a large file and then noticed your system seem to hang for some time afterwards? Maybe file moves from your SSD seemed to take longer than expected?
That's your problem right there. In the above capture, a 16GB file was deleted while a minimal level of background IO was taking place. Note how that IO completely stalls for a few seconds shortly after the file was deleted? That's a bad thing. We don't want that, but to fix it, someone needs to measure it and point it out.
Latency Percentile data was obtained while running a 'light' (1000 IOPS) workload in the background while files of varying sizes were deleted. The amount of latency added during the deletions was measured, compared with a baseline, and correlated with the sizes of the deleted files. The result is how much latency is added to the active workload per GB of file size that was deleted. In short, this is how long you may see a stutter last after deleting a 1GB file.
This is another result from a different set of data. While our suite runs, it issues a full drive TRIM several times. Some of those times it is done on an empty SSD, others is it done on a full SSD. Any difference in time taken is measured and calculated, normalizing to a response time per GB TRIMmed. In short, this is how long an otherwise idle SSD would hang for upon receiving a TRIM command for a 1GB file. These times are shorter than the last chart, because the SSD controller does not have to juggle this TRIM with background activity, and it can service the request at full speed.
Speaking to the results, Samsung's controllers and firmware are extremely refined here. If you've ever partitioned a Samsung SSD (any model really) and it seemed abnormally quick, well, you weren't wrong.