Performance degradation, garbage
collection and TRIM
Unfortunately, SSDs do not always work as
fast as in their "fresh" state. In many cases their performance drops
down after a while and in the real-life use process, we deal with the write
speeds that are completely different from what we saw on the diagrams in the
previous chapter in our review. The reason for this phenomenon is as follows:
since the SSD is out of blank pages in the flash memory, its controller has to
erase its memory page blocks before saving the data into them, which causes
significant delays. Thus, the modern SSDs usually try to free memory in
advance, and not at the time when the write process is carried out. This
process usually occurs in the idle mode. At this time the SSD controller can
reduce the performance decrease almost entirely by removing unused flash memory
ahead of time. The corresponding steps are usually performed in the idle mode,
when the controller is likely to fully restore the SSD performance by deleting
the flash memory pages that are not used. They utilize two techniques for this
process, that is: the garbage in the idle time and TRIM.
The
modern SSDs usually try to free memory in advance, and not at the time when the
write process is carried out.
An SSD controller does not know which
memory pages hold user data, and which are considered free by the operating
system. It happens this way since in the file system, the process of removing a
file is not related to its actual physical removal. Instead, the corresponding
memory marked in the file system is available for writing data. Consequently,
without being related to the operating system, a SSD controller is likely to
only delete the pages in the reserve pool (if there are any) in advance, which
is not accessible by the operating system. For a better solution to this
problem, the modern operating systems that feature the TRIM command will
improve garbage collection efficiently. TRIM offers the SSD controller with information
on data that can potentially be removed without any damage, because it is
considered not to be used by the operating system. As a result, the SSD
controller is able to increase the pages that are deleted by removing the
unnecessary physical data for users not to feel a diminished performance in
writing next time.
This is how it will lie in the ideal
conditions. However, in reality, the SSDs perform differently in the process of
their garbage collection and TRIM implementation. That is why we test the
reduced performance of an SSD when moving from the state of just taking it out
of the box (flash memory is clean) to the steady state. This testing follows
the instructions of SNIA SSSI PTS TWG, which means we measure the write speeds
in four cases one by one. First we measure the speed of SSD "fresh".
Then we measure the speed after the SSD has been fully filled with data twice.
The third test session takes place after a 30 minute rest meanwhile the
controller can partially restore operation by running the idle-time garbage
collection. And finally, we measure the speed after releasing a TRIM command.
We ran the tests in 1.1.0 RC1 synthetic
IOMeter benchmark, where we measured the random write speed when working with 4
KB blocks of data in accordance with flash memory pages at 32 that requires
successively. The test data were artificial-random. The chart below shows the
history of changes in the relative speed, where 100% mentions the SSD
performance in the state of "fresh-out-of-box".
Iometer,
Relative Random Write
The chart shows that the problems of
reduced performance only spread at the SandForce-based SSDs meanwhile the other
models can recover their speed after the operating system provide them with the
TRIM command. However, the OCZ Vertex 3.20 is even worse than the other SSDs
with SF-2281 controller: its write speed degrades greatly and garbage
collection algorithms are not very effective. As a result, it may be halved the
performance during the writing process.
Hopefully, the Vertex 3.20 might improve
after the firmware updates. We do not know exactly what reference software OCZ
employs in this SSD because OCZ has its own numbering system. One of the latest
reference versions had some issues with TRIM, which can display in the Vertex
3.20. If so, they can be removed in the next firmware versions. On the other
hand, the SandForce engineers have been unable to perfectly perform their
garbage collection algorithms for over 2 years; therefore, their controller is
unlikely to avoid some performance decrease anyway, which is its main weak
point.
Futuremark PCMark 7
The popular PCMark 7 contains an individual
standard disk system. It is not a synthetic test, but is given on the real-life
applications. This standard may create the typical disk usage scenarios and
measure how fast they are fulfilled for common tasks. Starting with the version
1.4.0, the PCMark 7 disk system test generates raw performance results which do
not take into account any delay in the process of queuing commands. Such new
results are not compatible with the old ones, but the differences between the
performance numbers of the various SSDs are now becoming clearer. That's why we
decided to change to the new version for the test sessions from now on.
We ran PCMark 7 on "steady" SSD,
which is the state that exists in the real-life computer systems most of the
time. Their activities in this case are not only affected by their controller
or flash memory speed, but also by the effectiveness of their internal
algorithms against the performance decrease.
PCMark
7
SandForce–based SSDs are always good in
this standard since it uses compressed data, but the OCZ Vertex 3.20 is still
the worst in some of their products. This might have been anticipated because
it was slower than the SandForce-based SSDs with 25nm ONFI or Toggle Mode flash
in the synthetic tests.
However, the total score is a more general
measure of performance. Now let us examine the individual tests to get a more
detailed picture of what our SSDs are capable of working at each operational
load level:
The
Windows Defender Speed
The
speed of importing images
The
speed of video editing
The
speed of Windows Media Center
The
speed of adding music
The
speed of starting applications
The
speed of gaming
A remarkable unity! The OCZ Vertex 3.20
always stays behind the rest of the SandForce-based SSDs with synchronous MLC
NAND flash; consequently, its results are average of the overall ranks. There
is no proper script used for this product, and its appeal to the end-users will
be likely to depend entirely on its price.