Storage

A Few SSD Comparisons

So, I’m interested in SSDs, or Solid State Disks.  We’re seeing them come to the enterprise storage market, claiming that they can do the work of ten or more fiber channel platter based drives, albeit without the capacity.  I presume the reason that this works from a marketing perspective is that many applications need performance more than they do capacity, I know of several instances where we look at the number of spindles and only use a fraction of the storage space on each drive.  At any rate, now that major vendors are marketing them to the enterprise, it’s only a matter of time until the good stuff trickles down to the common folk.

Most enterprise storage is SLC NAND flash, which is inherently faster and more robust than the cheaper MLC that is commonly used un USB thumb drives, memory cards, and the like.  Both technologies have undergone improvements over the years, with vendors recently marketing a ten-fold increase in write cycles for both.  Even though the technology is improving, MLC is still the more consumer oriented device, and will be for the foreseeable future, because it’s cheaper to make at a given bit density.  While this may seem like it would relegate consumer SSDs to the lackluster performance seen on USB thumb drives, vendors get around this with their flash controllers, finding creative ways to write to arrays of flash chips, boosting performance enough to make MLC a viable option in the consumer storage space, which brings me to the main point of today’s article.

There are a lot of claims and counter-claims thrown about when it comes to SSDs.  Some say that they use more power, some say that they’re more power friendly.  One camp points to great read times, while another claims poor write performance.  So, being the curious individual that I am, I decided to run some of my own tests.  What follows is my own analysis of the products that I could get my hands on.  Be forewarned, these aren’t exhaustive tests, rather I focused primarily on my usage patterns and real-world situations.

Now to introduce the contenders:

  • Western Digital 2.5″ 5400RPM Scorpio, 160GB
  • Samsung 64GB SSD
  • OCZ “Solid series”, 60GB SSD

The comparison between the two SSDs is particularly of interest to me, because the Samsung was a $500 upgrade last February (of course I got a better deal than that), and the OCZ Solid SSD was recently purchased for $135. It’s their value line product and supposedly the lowest performing of their current line-up.

The two main areas I’m going to focus on are performance and power consumption.  I’m using two platforms, a Dell m1330 laptop, and a Lenovo ideapad S10, which is an Atom-based netbook. One special thing to note regarding setup, instructions from OCZ state to turn off AHCI or risk time-outs, pauses in your system.  Apparently they don’t handle (or need for that matter), some of the features of AHCI, such as Native Command Queueing.  I did not notice any difference on the m1330 with Vista SP1, but XP on the S10 definitely had long “WTF!?” pauses that were fixed by simply disabling AHCI in the BIOS. On to the benchmarks…

I’m beginning with the most relevant data captured, from iozone.  I’ll offer links to the full data, but one must be careful with interpreting the results, because iozone gives a complete overview of your entire platform, meaning that you see performance of processor caches, buffer caches, and disk. This can sometimes make it difficult to draw meaningful conclusions if one doesn’t understand all of the data. Another piece of information that will help you draw meaningful information from the data below, you can use the process monitor tool from SysInternals to view the transaction sizes that your various applications use. For example, my antivirus scanner reads files in 4k requests at a time, large files being copied with Explorer in Windows XP seem to be read and written 64k at a time, while in Vista files are read 1024k at a time and written 64k at a time. The behavior of the application, along with file sizes and their location on disk, are key in understanding the effects of the below data.

Many people have seen the phenomenal boot times of SSDs, and these tables highlight the reason. Comparing the older Samsung SSD to the Scorpio spindle, we see that random reads for the most common transaction sizes (4k-64k) are about 10 to 13 times faster. The OCZ SSD also shows this trend, and adds a big bump to sequential reads as well.  In exchange, however, we get slower writes, on the order of about 2 to 5 times, with random writes taking a big hit.  Still, it should be noted that random write performance isn’t particularly great even for the Scorpio at common transaction sizes.  All in all it seems to be a good tradeoff, especially considering that most data is write once, read many.

Another thing that this highlights is the benefit of defragmentation.  Many have asked the question “should you defragment an SSD?”, and the common wisdom is that defragmentation isn’t necessary with SSDs.  While they should indeed be limited in order to preserve the (currently unknown) longevity of the flash, one needs only to look at the performance between random and sequential to see that even SSDs benefit from defragmentation.  Some people are concerned about the write lifetime of flash, and while manufacturers try to put people at ease with their various wear optimization techniques, the reality is that most of these devices are too new to have a proven track record either way.  For the record, I’ve had my Samsung for about a year now, have beaten the hell out of it as far as writes, and haven’t had any issues yet ;-).

full iozone data –  xls csv

Here’s another look, this time by a simpler benchmark from ATTO on the XP netbook. I won’t go into too much detail here as it’s more of the same, but you can view the results by clicking on the thumbnails below.  Note that if one were to only use this tool, one might not see why the samsung SSD is subjectively much faster in day to day use than the Scorpio drive.

ATTO- WD Scorpio 160GB

ATTO- WD Scorpio 160GB

ATTO Samsung SSD 64GB

ATTO Samsung SSD 64GB

ATTO OCZ Core series 60GB

ATTO OCZ Solid series 60GB

Next up, a real world scenario: virus scan. This should show a huge improvement when moving to SSD, according to the iozone results. Some of the information will be sequential, but most will be random.  On top of that, as I mentioned, the virus scanner I’m using seems to read files 4k at a time. The setup is Avast! Antivirus, running a standard scan on Vista SP1.

The results speak for themselves. The iozone data seems to translate into real-world performance.

Now for battery life. I performed two tests, one was watching an xvid encoded 480p movie from the hard disk, the other was pretty much idle, with a script writing a small amount of data to the hard drive every 30 seconds.  The movie was chosen because it did a good job of generating  a constant stream of i/o (64k at a time) while not being absurdly taxing on the disk like running a benchmark might, a good real-world scenario. Actual results should in theory end up somewhere between the two benchmarks.

The m1330 loses a bit of life when switching to SSD, about 8 minutes. However, with the S10 it seems to be a wash. There are too many differences between the two platforms to pinpoint the cause. It could be due to the more aggressive performance settings I have in the m1330’s power options, could be a hardware difference, or even XP vs Vista.  All we can really say is that the mileage isn’t due to the disk alone, but how the platform reacts to it. Your mileage will depend on your platform, but the difference isn’t much.

Again, we see conflicting results. The S10 likes SSDs, while the m1330 doesn’t. I searched through the power options, and there were a few differences on the m1330 in regards to processor frequencies, but the hard disk settings were the same between platforms.  I have a hunch that the S10, being a smaller, lower wattage platform overall, will be more sensitive to the actual power consumption of the drive. Make of it what you will, the differences don’t seem to be all that much either way.

In summary, it seems that SSDs, in their current incarnation, offer a large boost to read performance in exchange for a medium-small cut in write performance. There are differences in battery life, but the differences are relatively small and differ between platforms. I would like to get my hands on some of the higher-end SSDs such as the intel x25, but until the prices come down, I think that comparing these (now) budget SSDs has been a useful exercise.

2 comments

  1. aaron barrus

    I’m disappointed that I can’t paste in the graph from Excel – I made a nice 3D surface graph to match yours… Anyway, here is my Mac with a Corsair C300 256GD SSD connected via the internal SATA3. I apologize in advance for using a mac – I’m at a design company.

    Perhaps there are a few changes in the darwin port of iozone – here’s the header of the report:

    Iozone: Performance Test of File I/O
    Version $Revision: 3.373 $
    Compiled for 64 bit mode.
    Build: macosx

    Maybe the raw numbers will still appear in-line when I’ve submitted. Probably not – but the numbers are still valid.

    The OS was up-and-running during the test; it wasn’t a separate drive unfortunately. Therefore it’s skewed by whatever the OS wanted to do in the meantime. Maybe that explains some of the weird anomalies in the numbers – they look kinda weird in a few spots.

    I’m really surprised that it’s not more linear. I’d distrust it but since it’s similar to yours, I’ll figure it’s somewhat valid…

    4 8 16 32 64 128 256 512 1024
    64 1421755 2133730 4564786 6421025 6421025
    128 1521718 3560017 2727923 5847904 4557257 7082197
    256 2247235 2533571 4819184 4332998 4929815 4929815 5428265
    512 1450212 2975154 4838792 6104175 4784885 6909408 4882800 5624545
    1024 2211841 3121783 3208058 4943530 4249053 4920874 4512441 4715569 5885083
    2048 2062505 3235617 4911886 4120256 6873016 6895083 6092991 6649556 5769681
    4096 1325218 2340643 1914019 3916259 3935097 4253700 3000428 3033808 2739658
    8192 1358317 1879758 2217071 2680625 3150591 3178865 2808359 2347168 2969006
    16384 1471137 2111015 2640436 3203136 3097173 3253330 3117829 2917924 2918916
    32768 1502643 2094186 2815575 2821181 3125828 3180072 3247857 1331169 3176765
    65536 1523487 2121449 2537206 2982687 3184745 3232001 3197674 3235692 3243710
    131072 1513320 2138796 2698177 3105231 3209244 3313822 3219091 3268954 3216341
    262144 1521731 2137282 2782694 3149291 3259281 3368283 3256685 3305392 3287946
    524288 1456493 2133603 2769073 3130354 3239441 3354968 3267509 3301272 3296126

    4 8 16 32 64 128 256 512 1024
    64 1421755 2278628 3541098 5735102 6421025
    128 1543594 3895854 3053774 6114306 4596273 7176872
    256 2210228 2463808 4734192 3994490 4572895 4734192 5117791
    512 1546280 3768799 4827914 6035551 4163357 6757222 6632013 7022379
    1024 2534194 4110780 3804877 5593820 6609617 4433259 4762630 6609617 7020149
    2048 2046291 3702868 5184636 6058611 7368238 6807652 7368238 7477273 6895083
    4096 1403262 2549015 2617364 3548968 3717133 3792628 3354915 3366089 3128843
    8192 1666103 1960746 2364776 2208095 2958525 2343166 2504572 3108970 3166561
    16384 1639699 2201502 2570027 3143501 3232062 2915819 3220097 3213772 3045967
    32768 1587296 2270524 2619990 2935675 3341346 3379136 3192556 2169216 3150477
    65536 1631634 2261033 2803337 3110822 3345038 3366876 3426003 3471171 3407487
    131072 1629216 2246727 2775019 3143297 3348620 3391067 3432545 3454003 3430917
    262144 1621053 2253297 2786573 3148795 3348883 3370245 3424258 3476114 3472842
    524288 103247 134741 86337 146745 169365 131754 104928 121458 141192

  2. marcusadmin Post author

    The non-linearity is due to the caches. You can see this for example in your second numbers (I’m assuming it’s sequential write?), between the 256M and 512M apparently this particular system stopped caching writes in dirty memory and you get the true disk performance. So you normally have three tiers on these, small data sizes that you see in l1/l2/l3 cache, medium sizes that you see in the caches of the operating system, and then no cache. Of course it depends on the mode iozone was run in as well. By default it does the write stuff first, you get the benefits of the write caches, and then it does the read test, and of course it’s already in memory, so it’s more of an overall system view than a disk performance, unless you use a max file size larger than the memory you have.

Leave a Reply

Your email address will not be published. Required fields are marked *