Why SSDs Care About What You Write: Fragmentation & Write Combining

PC Perspective's Allyn Malventano is a smart dude, just read one of his articles to figure that out. He pieced together a big aspect of how the X25-M worked on his own, a major key to how to improve SSD performance.

You'll remember from the Anthology that SSDs get their high performance by being able to write to multiple flash die across multiple channels in parallel. This works very well for very large files since you can easily split the reads and writes across multiple die/channels.

Here we go to write a 128KB file, it's split up and written across multiple channels in our tiny mock SSD:

When we go to read the file, it's read across multiple channels and performance is once again, excellent.

Remember what we talked about before however: small file random read/write performance is actually what ends up being slowest on hard drives. It's what often happens on a PC and thus we run into a problem when performing such an IO. Here we go to write a 4KB file. The smallest size we can write is 4KB and thus it's not split up at all, it can only be written to a single channel:

As Alyn discovered, Intel and other manufacturers get around this issue by combining small writes into larger groups. Random writes rarely happen in a separated manner, they come in bursts with many at a time. A write combining controller will take a group of 4KB writes, arrange them in parallel, and then write them together at the same time.

This does wonders for improving random small file write performance, as everything completes as fast as a larger sequential write would. What it hurts is what happens when you overwrite data.

In the first example where we wrote a 128KB file, look what happens if we delete the file:

Entire blocks are invalidated. Every single LBA in these blocks will come back invalid and can quickly be cleaned.

Look at what happens in the second example. These 4KB fragments are unrelated, so when one is overwritten, the rest aren't. A few deletes and now we're left with this sort of a situation:

Ugh. These fragmented blocks are a pain to deal with. Try to write to it now and you have to do a read-modify-write. Without TRIM support, nearly every write to these blocks will require a read-modify-write and send write amplification through the roof. This is the downside of write combining.

Intel's controller does its best to recover from these situations. That's why its used random write performance is still very good. Samsung's controller isn't very good at recovering from these situations.

Now you can see why performing a sequential write over the span of the drive fixes a fragmented drive. It turns the overly fragmented case into one that's easy to deal with, hooray. You can also see why SSD degradation happens over time. You don't spend all day writing large sequential files to your disk. Instead you write a combination of random and sequential, large and small files to the disk.

The Cleaning Lady and Write Amplification A Wear Leveling Refresher: How Long Will My SSD Last?
Comments Locked

295 Comments

View All Comments

  • tachi1247 - Friday, September 18, 2009 - link

    Does anyone know what the difference is between the 7mm thick and 9.5mm thick drives?

    http://download.intel.com/design/flash/nand/mainst...">http://download.intel.com/design/flash/nand/mainst...

    They seem to be identical except for the drive thickness.
  • dszc - Saturday, September 12, 2009 - link

    FANTASTIC series of articles. Kudos! They go a long way toward satisfying my intellectual curiosity.

    But now it is time to reap the rewards of this technology and earn a living.
    So I need some real-world HELP.

    How do I clone my 320GB (80GB used) Hitachi OS drive (Vista 32 SP2) over to a 128GB Indilinx Torqx?

    All I really care about is Photoshop and Bridge CS4 performance. I am a pro and work 4-16 hours per day in Bridge and Photoshop, with tens of thousands of images, including 500MB - 2GB layered TIFFs. The Photoshop Scratch Disk and Bridge and CameraRaw Cache performance are killing me. Solid State Storage seems to be the perfect solution to my problem

    I really want to simply clone my 320 over to the Torqx, because it would take me a week to re-install and configure all of my software and settings that are now on the 320GB Hitachi.

    Do I just bring the Torqx up in the Vista Storage Disk Management, initialize it with one big partition, and then format it?
    What size allocation unit should I use? :
    Default? 4096? 64k? ???
    Will these settings be wiped out when I clone over the stuff from the old hard drive?
    What about "alignment"?
    What is the best software for a SIMPLE & painless clone procedure?

    I'm not a techie or geek, but have a fair working knowledge of computers.

    Any help would be hugely appreciated. Thanks.
  • userwhat - Thursday, September 17, 2009 - link

    I use Drive Snapshot for all these purposes. It works 100%, it´s a very small and fast program. After having issues with Norton Ghost and some other similar programs which were absolutely unable to restore an imaged partition stored on a DVD this is THE one to use.

    Get it here: http://www.drivesnapshot.de/en/">http://www.drivesnapshot.de/en/
  • dszc - Saturday, September 26, 2009 - link

    Thank you very much for your help and recommendations.
    To get my Patriot (SolidStateStorage) up and running, I used Seagate DiskWizard (an Acronis subset), as I have lots of Seagate drives already on my system and this free software seems to work.
    When I get a window of time in my schedule, I'll try DriveSnapShot and/or DriveImage to see if they do a better job in helping my Torqx SSS run at its full potential.
    Thanks again for your help.
    Dave
  • JakFrost - Tuesday, September 15, 2009 - link

    If you want to image out your current drive and migrate over to an SSD you can use the free software below that works with Windows Volume Shadow Copies to do a online live migration to another drive without losing or corrupting your data. This means that you can do this from the same OS that you are running.

    This software will allow you to image out to an already created partition that is already aligned at the 1MB boundry that is standard for Microsoft Vista/7 operating systems.

    DriveImage XML V2.11
    English (1.78MB)

    Image and Backup logical Drives and Partitions

    Price: Private Edition Free - Commercial Edition - Buy Now Go!
    System Requirements: Pentium Processor - 256 MB RAM
    Windows XP, 2003, Vista, or Windows 7

    An alternative is to use an offline migration system such as Acronis TrueImage, Norton Ghost, etc. to do the migration offline from a bootable CD or USB drive. Search around for Hiren's BootCD to check out these and other tools to do the migration.
  • dszc - Saturday, September 26, 2009 - link

    Thank you very much for your help and recommendations.
    To get my Patriot (SolidStateStorage) up and running, I used Seagate DiskWizard (an Acronis subset), as I have lots of Seagate drives already on my system and this free software seems to work.
    When I get a window of time in my schedule, I'll try DriveImage and/or DriveSnapShot to see if they do a better job in helping my Torqx SSS run at its full potential.
    Thanks again for your help.
    Dave
  • jgehrcke - Friday, September 11, 2009 - link

    Be careful when buying a Super Talent UltraDrive GX 128 GB with "XXXX" in serial number (unfortunately you cannot check this before ordering the drive). These drives are much slower than measured in the benchmark here and in other benchmarks.

    For more information and related links see

    http://gehrcke.de/2009/09/performance-issue-with-n...">http://gehrcke.de/2009/09/performance-i...est-supe...
  • Kitohru - Thursday, September 10, 2009 - link

    Does OS X Snow Leopard have trim support, and if not any word from apple about that or the like?
  • Zool - Thursday, September 10, 2009 - link

    I still dont think that with this price ssd-s will be more mainstream in the next years. And honestly the performance is not even that extra if everything would work like it should. The mechanical drives can reach now 100 MB reads when things are optimal. The small files performance is still only software problem. U should never ever reach point when u need to randomly find 4 KB files in a long row. With todays ram capacity and cpus-s programs should never read such small files or group things in larger files and read whole to memmory. A solid today programed aplication (let it be game or programs) should never let your disk spam with 30k files (like catia or other plenty of aged so called "profesional" programs). With today ram and disk capacity it should read things to memmory and let only grouped larger files on disk and never ever touch the hdd again until users isnt comunicating with the software (u can tell it to windows).Saves can be made to memmory and than write to disk without even seeing a fps drop in games(not just games) becouse of disk comunication latenci
    I dont even think the IO performance would be a problem with the RIGHT software and OS. With 100MB reads it could run perfectly fine with few seconds loading times. Even the latencies of ssd-s are no match to ram latencies so everithing that should activly comunicate with disks (which is just stupid with curent ram prices and 64bit) would just level your latencies down to disks.
    Why should worry about latencies and read speeds when u could copy it to ram and keep the files on disk in shape where the mechanical drive
    should never find itself to read files smaller than few MB.(even your
    small txt documents u can hide in archive).
    Just my toughs. (sorry for my english)
  • AlExAkE - Wednesday, September 9, 2009 - link

    Hey, I'm a web & multimedia designer. I spend lots of my time using most of the Adobe CS4 products including Photoshop, Flash, Dreamweaver, Illustrator, After Effects & Premiere Pro.

    The Intel 80GB G2 looks amazing, but the Photoshop test is awful because of his write speed. The Intel 25-Extreme series seem to be the best but is to pricey. The OCZ Vertex has good write speed but is slower than Intel G2 in most of the test. What would be the recommended SSD for my purpose. Thanks

Log in

Don't have an account? Sign up now