Saturday, December 25, 2010

SSD Performance: TRIM And Firmware Updates Tested

Solid state drives can deliver exceptional performance, but they're not necessarily fire-and-forget upgrades. You'll only really get the best possible experience from them if you pay attention to details like TRIM support and available firmware updates.
The SSD vendors’ marketing divisions simply do not tire of citing insanely high MB/s throughput numbers and sky-high IOPS. While these figures aren't inaccurate, per se, they don't necessarily reflect the truth either. Everyday operation does not equal the hygienic test conditions laid out carefully to maximize numbers. In the end, this means that the mentioned performance specifications can, in fact, be reached, but it takes some optimization.
I’ve got one of the best SSDs, what do I care?
The fact alone that a brand new SSD is known for being fast and furious does not mean that it really is. Are you using the latest SATA storage drivers? Have you ever checked if AHCI mode is enabled in your BIOS? Would you be sure that the TRIM feature is actually working? Could it be that there is a newer firmware version for your solid state drive? Might a recent configuration change have impaired your storage performance? If you've recently spent as much on storage as other folks spend on an entire netbook, it’s legit to spend some time investigating the bang for your buck.

We’ve seen both extremely great and incredibly poor performance results on SSDs, and the reasons behind a negative performance experience can vary. First of all, it is important to use a decent product. While it used to be easy to judge hard drive performance, the characteristics of solid state drives depend on many variables. Most of the consumer SSD products available today are based on several channels of MLC NAND flash memory and one of the popular controller architectures. Intel’s X25 family has been very strong, with specific weaknesses when it comes to write throughput. The Indilinx hardware contributed to the breakthrough of SSDs by maximizing throughput. Crucial’s RealSSD C300 is still the king when it comes to raw bandwidth, thanks in part to a 6 Gb/s interface, but it was Sandforce’s SF-1200 controller that first showed us that high throughput and stellar I/O performance go hand in hand. The most recent SSD contender Samsung’s 470-series SSD, which we used for this performance evaluation.
We've already mentioned a few factors that can influence performance, and we found that it is important to check all of them. In this article, we’ll be looking at a recent firmware update, and then check performance levels with and without the TRIM feature enabled.

Many people consider SSDs to be a nice upgrade option, even for older systems, as the impact of a much-accelerated storage subsystem is extremely noticeable. However, SSD performance is partly and sometimes largely defined by a system’s ability to handle large amounts of I/O activity. This means that an SSD will only deliver peak performance if it is hosted on a fast system. We found that even a high-end SSD delivers 10-20% less performance if operated on a computer with insufficient CPU horsepower. This has happened to us on older Pentium 4 or early-generation Athlon 64 machines with single-core CPUs. Hence, we recommend that you first spend money on a decent platform before worrying about sinking hundreds of dollars into a solid state drive.
A minimum level of performance isn't just limited to the processor, either. It also includes your storage controller. While 6 Gb/s SATA is nice to have, there is currently only one SSD product available that would take advantage of the increased headroom. If you’re looking at an SSD that has a 3 Gb/s interface, then a 3 Gb/s interface is all you need. However, pay attention to the controller specification: only an AHCI device (Advanced Host Controller Interface) will be able to fully support an SSD, which means that a legacy controller almost always results in decreased performance, simply because it cannot handle all commands, such as queuing and TRIM.

A final system check should also include your driver situation. Are you sure that you’re running the latest available storage driver? If not, it makes sense to simply download and install the latest version, as up-to-date software is required for the exact same reason as a AHCI controller: you definitely want to make sure that an SSD is fully supported. And lastly, any hardware configuration change might cause issues on the storage side. We’ve seen systems with SSDs dropping to only ~10 MB/s maximum throughout after we exchanged the storage controller. Although Windows automatically detected the new device and installed the software, we could only regain maximum SSD speed after uninstalling and reinstalling the storage drivers.
Needed: TRIM Support
Data management is simple on hard drives, as information is stored in individual blocks that follow a logical count through LBA (logical block addressing). The hard drive typically knows where to locate individual blocks, and it can reposition its heads to a certain track to read or write them. It can do this one by one for each and every block.
NAND flash memory has its own idiosyncrasies. One of them is the limited life span of flash memory cells that forces SSD makers to work with wear leveling algorithms in an effort to even out the life expectancy of all memory cells used on a solid state drive. Another characteristic is the fact that MLC flash memory has to be erased before it can be written, and that drives typically work with larger block sizes than those of the operating system (512 KB vs. 4 KB). This means that a few kilobytes write operation triggers an entire block to be read, erased, modified, and written. As you can imagine, this takes some time and it wears all involved memory cells. The FTL (Flash Transition Layer) is utilized to map physical data to logical LBA data, but I believe you can imagine that it’s quite a bit of work for the controller to balance wear leveling and performance. This is commonly known as write amplification. It is expressed through a simple number that tells you the percentage factor of write data that is actually written.
TRIM is a feature that facilitates the controller’s work. It is a command issued by the operating system and basically enables an SSD to eliminate the garbage collection overhead. Any deletion triggered by the operating system at the page level will not immediately execute a physical erase. Instead, the pages are marked as available. Any erase operation always involves the entire block, even though only one page might be affected. Thus, TRIM takes care of the overhead associated with writes in the background, preventing a slow-down when the write actually occurs.
First of all, you need an SSD that supports the TRIM feature. This is the case for almost all products available on the market today, but TRIM can technically be added to older SSD designs through a firmware update. However, most vendors seem to have abandoned older solid state products, instead using TRIM as a differentiator on newer drives. To be safe, you're better off not searching for a deal in the clearance bin; just buy one of the newer drives and avoid those support issues.

Secondly, you need an AHCI-compliant SATA storage controller. The Advanced Host Controller Interface has been available for a few years, and even if your system supports AHCI, this mode has to be switched on in the BIOS. Make sure that you use the latest storage drivers as well.
Lastly, the operating system also needs to support TRIM. This is the case on all editions of Windows 7 and Windows Server 2008 R2, Linux 2.6.33, Open Solaris, and FreeBSD 8.1. If you're using an operating system that doesn’t support TRIM, but have compatible hardware otherwise, then you can also use a TRIM utility like hdparm for Linux to manually trigger the command. Be careful with other tools, though, as it is possible to physically reset an SSD as well. This is commonly known as sanitization and should not be confused with TRIM, as sanitizing a drive means to fully erase it.
Wanted: Latest Firmware
We’ve tried many firmware updates on different storage products. Therefore, we can tell you that SSDs are among the most sensitive components around when it comes to firmware modifications and their effect on performance. RAID adapters can typically be adjusted for different application scenarios by altering the firmware, but hard drive or optical drive firmware updates are usually something like a maintenance fixe. In the case of SSDs, it’s an entirely different story.
Intel’s first X25-M drive didn’t deliver a lot more performance than it does today when Intel started to ship its first updates, but the drive actually managed to maintain high levels of performance, even in high load scenarios. This was back at a time when TRIM was not yet available. Therefore, it was up to the drive to maintain performance levels that users expected.
During our testing for this piece, where we were trying to show the difference between TRIM enabled and disabled, Samsung happened to release a new firmware version for the 470-series SSD. Hence, we decided to repeat our tests with the new 0701 and add the results to the numbers we obtained with the 0601 version. It turns out that the new firmware not only increases overall performance, but it also assists in minimizing the performance impact if TRIM is disabled. For users who want or need to operate an SSD in an imperfect system without TRIM support, this fact might be very important.

System Hardware
CPUIntel Core i7-920 (45 nm, 2.66 GHz, 4 x 512 KB L2 Cache, 8 MB L3 Cache)
Motherboard (Socket 1366)Supermicro X8SAX
Revision: 1.0, Chipset Intel X58 + ICH10R, BIOS: 1.0B
RAM3 x 1 GB DDR3-1333 Corsair CM3X1024-1333C9DHX
ControllerHighPoint Rocket 620
HDDSeagate NL35 400 GB, ST3400832NS, 7200 RPM, SATA 1.5 Gb/s, 8 MB Cache
Power SupplyOCZ EliteXstream 800 W, OCZ800EXS-EU
Performance MeasurementsPCMark Vantage
System Software & Drivers
Operating SystemWindows 7 Ultimate
Intel Rapid Storage ManagerVersion 9.6

Test SSD: Samsung 470 Series, 256 GB

We used Samsung’s new 470-series SSD, also known as the PM810, for this article. It is one of the newest SSDs available, so we were curious about its general performance characteristics. Therefore, we had to deliver a little torture test to really push the drive as hard as possible, hoping to show the differences with and without TRIM, and the 0601 vs. 0701 firmware versions.

It is possible to switch TRIM support on and off in Windows 7, which we used for our testing. There is a very simple way:
To enable TRIM (if it's disabled), go to command prompt and type:
fsutil behavior set disabledeletenotify 0
To disable TRIM, to go command prompt and type:
fsutil behavior set disabledeletenotify 1
Note: you need administrator rights to execute fsutil.
First, a few words on TRIM and performance. It has become rather difficult to push an SSD to its limits, given the most recent high-performance products. For our testing, this meant coming up with a solid workload in order to tax our test platform. In the past, you only had to run a few I/O-intensive tests and some throughput workloads to trigger a significant performance drop.
It took a lot more effort with the test drive. We used the Iometer database test pattern that reads and writes lots of small blocks onto the physical medium. We prefer this over a logical volume because it doesn’t allow the SSD to quickly recover and maximize performance. Then, we copied roughly one million different files onto the SSD until the 256 GB of available capacity was approximately 80% filled. We immediately deleted all the files again and ran the storage test of PCMark Vantage. Here is the exact methodology:
  1. Sanitize SSD
  2. Create volume and format
  3. Run PCMark Vantage (results labeled ‘fresh’)
  4. Delete volume
  5. Run 3 hours of Iometer, database test pattern Q1 to Q32, 30 minutes each
  6. Create volume and format
  7. Copy 37 instances of our USB thumb drive test data onto the SSD (1+ million files)
  8. Delete files
  9. Run PCMark Vantage (results labeled ‘tortured’)
  10. Wait 30 minutes
  11. Run PCMark Vantage (results labeled ‘after 30 minutes idle’)

This way we received three different PCMark Vantage performance results under different conditions. Let’s see how these differ.

Application loading performance reaches 118 MB/s on a fresh 470-series SSD with the older 0601 firmware with TRIM enabled. The two other results after our torture testing are 99 and 98 MB/s, which means that the drive shows a performance impact due to the significant workload and still achieves 84% of its initial performance. However, running the exact same scenario without TRIM would put the drive back to 84 MB/s in a clean state and 62/64 MB/s after the torture testing. Clearly, TRIM makes quite a difference.
The new firmware turns out to be a real game changer, as the drive goes up to 141 MB/s with the 0701 release. The performance level to which it drops after the torture test is 127 MB/s, or 90%, which means that overall performance, as well as TRIM efficiency have improved. But even if TRIM is switched off, the drive recovers faster from the torture test after our 30 minute idle period.

The gaming results are similar, but the differences are less significant.

In the video editing test, the new firmware doesn’t improve maximum performance, but it has a very positive impact by making the drive more resilient against our torture testing.

Windows Defender hardly involves any write operation, which is why there are only small differences here.

Windows Media Center performance is now a bit more solid with the firmware release 0701 and TRIM switched on.

Adding music to the Windows Media Player happens with a minimum performance impact on the 0701 firmware and with TRIM, as the drive remains at 132 MB/s and up, while the older firmware had to admit defeat to our torture testing, delivering 87 MB/s on the third PCMark Vantage run after 30 minutes idle time.

Adding images to the Windows Photo Gallery is not a very relevant test, as we’re talking about large size files that can all be handled at high performance. Clearly, smaller files are more challenging to write to SSDs.

The new firmware improves the Windows Vista startup performance, but just a bit.

Overall, the new firmware has quite a nice impact on PCMark Vantage, with or without the TRIM feature.

We learned quite a bit from the results, although we didn’t go through our entire suite of benchmarks because of time constraints. Each run takes roughly five hours to complete, which was the main reason why we decided to go with PCMark Vantage. The benchmark may be synthetic, but it actually reflects everyday performance rather well. The Samsung 470-series SSD drives we used are new, and pretty much representative of today's solid state storage market when it comes to an analysis of TRIM and the potential impact of a solid firmware upgrade.
The results clearly show that you definitely want to go with a system that supports TRIM. Although the overall performance levels are almost identical with and without TRIM (‘fresh’ test runs), a SSD without TRIM suffers from severe performance drops if you start torturing it with high-intensity workloads, especially if they involve sequential activity (high capacity) and a large number of I/O operations. This type of torturing may already occur with a few concurrent P2P downloads happening alongside other user activity, although our scenario was designed to be more extreme, of course. The conclusion for TRIM is simple: go with modern hardware and Windows 7 and you’re fine, otherwise you will not be able to take full advantage of you precious SSD.
We found the latest firmware to be impressive in two ways. On one hand, it actually improved the SSD’s overall performance in a few sections of PCMark Vantage. On the other, it maximized performance after our torture test in such a way that many of the performance drops are more moderate now. This applies both to the test runs with TRIM and also the ones without the feature, which may be interesting for users who specifically need to run SSDs on pre-Windows 7 operating systems.
Our test results also show that there still is a lot of progress to be made when it comes to optimizing architectures by fully taking advantage of the available features--these being hardware features or SSD firmware tweaks or just the better utilization of TRIM. Therefore, we recommend keeping your eyes open for updates, as these are definitely more important than ever before.

1 comment:

  1. Solid-State technology brings a new level of performance and reliability to net book and notebook storage. No moving parts provides for quieter, cooler, and more durable solutions to traditional hard disk drives.
    Solid state disk