Performance Degradation, Garbage Collection and TRIM
Unfortunately, SSDs are not always as fast as in their fresh out-of-box state. In many situations their real-life performance goes down far below the numbers you have seen in the previous section of this review. The reason is that, having run out of free pages in flash memory, the SSD controller has to erase memory pages before writing to them, which involves certain latencies. Modern SSD controllers can alleviate the performance hit by erasing unused flash memory pages beforehand when the SSD is idle, which is the key idea of the Idle-Time Garbage Collection algorithm whose implementation has a strong effect on the real-life performance of any SSD.
An SSD controller doesn’t know which memory pages contain user data and which are considered empty by the OS. It’s because removing a file doesn’t involve its actual physical removal. Instead, the corresponding memory is marked in the file system as available for writing into. So, an SSD controller can only pre-erase pages in the reserve pool (if it exists) which is not accessible by the OS. For a better solution of this problem, modern OSes have the TRIM command which improves garbage collection efficiency. TRIM enables the SSD controller to physically remove unneeded data so that the user didn’t feel a performance hit during subsequent write requests.
This is how it should be theoretically. In practice, however, SSDs differ in their garbage collection and TRIM support. That’s why we check out the performance hit an SSD suffers when transitioning from its out-of-box (the flash memory is clean) to used state. This test follows the SNIA SSSI TWG PTS guidelines, which means that we measure the speed of writing in four cases one by one: 1) when the SSD is in its out-of-box state, 2) after the SSD has been twice filled full with data, 3) after a 30-minute pause that allows the SSD controller to restore performance by means of data reorganization and garbage collection, and 4) after the SSD is cleaned logically by the TRIM-supporting OS.
So we use IOMeter 1.1.0 RC1 to measure the speed of writing random-address 4KB data blocks aligned to flash memory pages at a request queue depth of 32. The test data are pseudo-random. The changes in speed are shown in the next diagram where 100% is the SSD’s out-of-box performance.
In our tests of the Intel DC S3500 we were surprised to see that datacenter-optimized drive being unable to restore its performance without TRIM. Background garbage collection is valued in server environments because it helps ensure consistent speed at continuous loads. Intel’s SSDs with third-generation controllers do not support this feature for some reason. That’s why we didn’t really expect anything from the Intel 730 in this respect.
So indeed, the Intel 730 drives cannot restore their performance without TRIM. But their TRIM implementation is immaculate. When the OS issues that command, the writing performance is restored to the original level. Users who install their Intel 730 into a computer running a modern OS will not face the performance degradation problem. The only exception is RAIDs where TRIM is supported for RAID0 and only by some of SATA RAID controllers.
Well, even though the Intel 730 doesn’t support background garbage collection without TRIM, it is still superior to Intel's earlier SandForce-based products. It breaks up the tradition of write speed degradation that plagued Intel’s earlier SSDs of the 330, 335, 520, 525 and 530 series.