Performance Degradation, Garbage Collection and TRIM
One peculiarity about SSDs is that their performance is not constant but varies depending on multiple factors. First of all, it is important whether their flash memory is clean or filled with data. Then, various caching techniques, which are now implemented by many SSD makers, may influence the speed of writing. That's why we want to check out how SSDs change their performance while processing a continuous stream of random-address write requests. Such tests can reveal a lot of interesting information about an SSD's internal operation algorithms.
So in the first test we make the SSD process a continuous stream of requests to write random-address 4KB data blocks with a request queue depth of 32. The diagram below shows the correlation between instantaneous performance and the amount of written data. The test is carried out over a 2-hour period, so we can see what performance is delivered by the SSD in its out-of-box state, in its steady state and in all the in-between states. It is important to note that the test is continuous, so we don’t let the SSD use its garbage collection algorithms which are evoked in idle mode.
The diagram shows that the Crucial M550 series behave in a standard way. They don’t have any advanced caching or flash memory management technologies, so their speed of writing remains constant until they are filled full with data. Then the controller has to restore blocks of flash memory pages prior to writing to them, which leads to a performance hit. The only exception is the 256GB model that suffers a small performance hit a little sooner, after writing about 210 GB of data.
It is interesting to note how the write speed changes after the drive is filled full with data. It varies wildly as we can see in the diagrams. The steady-state 1TB model may even deliver its out-of-box performance. The 256 and 512GB models have their top write speed lower steadily to the bottom limit of about 15 MB/s.
You shouldn’t worry about that performance hit, though. Every SSD has technologies to keep its performance high. When idle, modern SSDs rearrange data in flash memory blocks so as to achieve maximum write performance. We carry out a special test to check this out. After the 2-hour continuous writing which leads to performance degradation we disable TRIM and wait for 15 minutes. During this time the SSD should try to recover through garbage collection - and without any help on the OS's part. Then we enable TRIM in the OS and make another 15-minute pause and benchmark performance once again to see how well the SSD processes the TRIM command.
The most important thing is that the TRIM command fully restores the speed of the M550 drives, so users of these SSDs are unlikely to notice any performance degradation. As for the TRIM-less background garbage collection, it is implemented in the new SSDs, too. Its efficiency isn’t high, though. The 256GB model can restore only 3.2 GB of storage over the 15-minute idle period. The 512GB can do the same. The 1TB model is better at garbage collection, restoring about 6.6 GB. It must be noted that the amount of user-inaccessible storage, apart from what is used for the RAIN technology, is 15.6 GB in the 256GB M550, 31.2 GB in the 512GB model, and 62.3 GB in the 1TB model. So theoretically we might expect better results from background garbage collection in these drives.