PDA

View Full Version : SSD - is there any way around the low performance for small file sizes?




milo
Oct 26, 2010, 02:43 PM
Just got an SSD recently and it's extremely fast for big files (reads in the 240mB/sec range and an obvious improvement running the machine).

But I also do work that uses a huge number of very small files, and I was surprised to find that the read performance is so much lower in that case. The 4k benchmark was actually slower than my old hard drive (about 40mB/sec), and loading up a project is also a little slower off of SSD versus HD. The files I'm loading are typically in the 60k range which should be better performance than 4k (and I would think better than HD, but that's not what I'm seeing on my machine). Looking at some SSD benchmarks online (on PC), 64k is still down from the max speed but not much, about 180.

Are the results I'm seeing fairly typical? Is there any way to speed up the performance of the SSD drive with those smaller files/reads? Are there any formatting options for SSD that make a difference? This is a brand new drive with the data copied over to it, very little writing of files since then.

Maybe I'm just out of luck, but it seems like I should be getting better performance on SSD than HD (people doing the same thing on the PC side seem to be).



philipma1957
Oct 26, 2010, 02:49 PM
what is the ssd?

milo
Oct 26, 2010, 02:52 PM
Crucial c300, 128 gig.

xgman
Oct 26, 2010, 03:03 PM
Can you post which benchmarks you ran for comparison?

milo
Oct 26, 2010, 03:13 PM
Sure, this is xbench.

Disk Test 371.41
Sequential 232.56
Uncached Write 255.89 157.11 MB/sec [4K blocks]
Uncached Write 246.66 139.56 MB/sec [256K blocks]
Uncached Read 140.18 41.03 MB/sec [4K blocks]
Uncached Read 475.25 238.86 MB/sec [256K blocks]
Random 921.65
Uncached Write 1028.28 108.86 MB/sec [4K blocks]
Uncached Write 452.63 144.90 MB/sec [256K blocks]
Uncached Read 3165.81 22.43 MB/sec [4K blocks]
Uncached Read 1187.16 220.29 MB/sec [256K blocks]

According to the disk activity panel of Activity Monitor, I'm probably not even getting 40. Along the same lines, are there any decent apps for monitoring disk activity (one that breaks out individual drives would be even better)?

idonotliketostu
Oct 26, 2010, 04:39 PM
4k block -> 1. read, 2. stop, 3. next
256k block ->1. read *64 2. stop 3. next

reading 4k blocks stops 64times more often than 256kblocks


i don't know how it really works but that seems to fit the issue logically

idonotliketostu
Oct 26, 2010, 04:47 PM
oh i forgot there's an option in raid setups allowing you to customize the default block size, supposedly choosing a smaller default block size makes the drive run faster for those working with small files

philipma1957
Oct 26, 2010, 04:53 PM
oh i forgot there's an option in raid setups allowing you to customize the default block size, supposedly choosing a smaller default block size makes the drive run faster for those working with small files

yes he can set a smaller block size for raid, but those scores are not low.


no one gets good 4k scores hdds are worse then 40mb/s sometimes only 1mb/s or 2mb/s

Concorde Rules
Oct 26, 2010, 05:18 PM
*snip*

From the Benchmarks i've seen, sequentially a SSD and a HDD are give or take the same.

Random 4k reads however the SSD kicks the HDDs ass.

You simply cannot get any faster and there is nothing you can do to make it faster.

Only option is spending twice as much on a OCZ PCI-E thingy, which is ridiculously fast but ridiculously expensive.

Transporteur
Oct 26, 2010, 05:24 PM
From the Benchmarks i've seen, sequentially a SSD and a HDD are give or take the same.


Sequential speeds SSD SATA II: Up to 270MB/s
Sequential speeds SSD SATA III: Up to 355MB/s now, 500MB/s (proposed) in Q1 '11

Sequential speeds HDD: Up to 145MB/s

I wouldn't exactly say give or or take the same. ;)

Anyway, the OCZ drives you proposed are actually not really expensive any more. The RevoDrive editions are about the same price as a similar sized Vertex 2.
Unfortunately, there are no OS X drivers available as of yet. OCZ promised to work on them, though.

milo
Oct 26, 2010, 05:36 PM
no one gets good 4k scores hdds are worse then 40mb/s sometimes only 1mb/s or 2mb/s

Thanks, that's the impression I got.

But when doing actual work it should be loading files that are around 60k each. Still shouldn't be the full speed of the SSD but from what I understand it should be much better than the 4k read speed. But I'm getting data moving at the 4k rate if not worse.

Are there any disk benchmark tools that go into more detail like some of the PC ones that graph a bunch of different block sizes? It would be good to know if the drive still has bad performance at 60k reads or if it's something else.

philipma1957
Oct 26, 2010, 05:47 PM
right now i think intel is setup for 128k or 64k. no info on other ssds is available. as funny as it may seem a pair of first gen intel ssds x-25m 80gb in a raid0 may work best due to your small block size. i have a pair sitting in a desk drawer collecting dust. I have decided for my use I do not need ssd's. maybe we can figure out how to let you test the intel's. for just the shipping fees. I am thinking the world of ssd's have a lot of unknown's. such as block size etc.

Ace134blue
Oct 26, 2010, 06:00 PM
Crucial c300, 128 gig.

Sorry to tell you, but crucial sucks compared to the rest and many people know that. You should have gotten a sandforce based drive such as a G.Skill phoenix pro or a vertex 2. Those are much faster, and are fast in small file transfers too;

Ace134blue
Oct 26, 2010, 06:03 PM
Sequential speeds SSD SATA II: Up to 270MB/s.

Correction up to 285MB/s

nanofrog
Oct 26, 2010, 11:46 PM
Correction up to 285MB/s
Where'd you come up with this? OWC?

I ask, as technically, SATA II (3.0Gb/s) is actually capable of 375MB/s. You just don't ever see it. Real world sustained throughputs tend to max out ~270 - 275MB/s for any 3.0Gb/s compliant controller for a single drive.

Assuming OWC is your source, I expect that the 285MB/s figure is taking burst rate into account (has a bias to how they determined this number), not sustained. Burst rates do exceed the sustained values listed, but it's for a very brief period, and under specific conditions (usually only seen in a benchmark, not actual real world usage).

milo
Oct 27, 2010, 09:53 AM
Sorry to tell you, but crucial sucks compared to the rest and many people know that. You should have gotten a sandforce based drive such as a G.Skill phoenix pro or a vertex 2. Those are much faster, and are fast in small file transfers too;

Do you have a link to benchmarks showing that those drives are faster in small files transfer? All the ones I've seen show the c300 to be in about the same range as the ones you mention - no SSD drives seem to have 4k reads that are much faster than a decent HD. If I knew swapping to a different SSD would help, I'd do it but from what I've seen it doesn't look like that's likely to be the problem.

Sandforce has some great advantages but they mainly seem to be for writing and rewriting. For pure reads (especially from a brand new drive that just had data copied over once and left there), it doesn't seem like it would make much if any difference.

At this point I suspect the issue may be osx or the software, in real world use I'm getting loads (of mainly files of around 60k at a time) that are slower than the 4k benchmark I got.

Thanks for all the suggestions, any other ideas for testing or optimizing would be appreciated.

Ace134blue
Oct 27, 2010, 06:00 PM
Where'd you come up with this? OWC?

I ask, as technically, SATA II (3.0Gb/s) is actually capable of 375MB/s. You just don't ever see it. Real world sustained throughputs tend to max out ~270 - 275MB/s for any 3.0Gb/s compliant controller for a single drive.

Assuming OWC is your source, I expect that the 285MB/s figure is taking burst rate into account (has a bias to how they determined this number), not sustained. Burst rates do exceed the sustained values listed, but it's for a very brief period, and under specific conditions (usually only seen in a benchmark, not actual real world usage).

My source is ME. I got two 60gb G.SKILL Phoenix Pros from newegg. Sustained is 285MB/s read and 275MB/s write.

Heres a review
http://benchmarkreviews.com/index.php?option=com_content&task=view&id=551&Itemid=99999999

Ace134blue
Oct 27, 2010, 06:02 PM
Do you have a link to benchmarks showing that those drives are faster in small files transfer? All the ones I've seen show the c300 to be in about the same range as the ones you mention - no SSD drives seem to have 4k reads that are much faster than a decent HD. If I knew swapping to a different SSD would help, I'd do it but from what I've seen it doesn't look like that's likely to be the problem.

Sandforce has some great advantages but they mainly seem to be for writing and rewriting. For pure reads (especially from a brand new drive that just had data copied over once and left there), it doesn't seem like it would make much if any difference.

At this point I suspect the issue may be osx or the software, in real world use I'm getting loads (of mainly files of around 60k at a time) that are slower than the 4k benchmark I got.

Thanks for all the suggestions, any other ideas for testing or optimizing would be appreciated.

4K read sustained at 140MB/s and write was 177MB/s. That is MUCH faster than a harddrive.

VirtualRain
Oct 27, 2010, 06:13 PM
Do you have a link to benchmarks showing that those drives are faster in small files transfer? All the ones I've seen show the c300 to be in about the same range as the ones you mention - no SSD drives seem to have 4k reads that are much faster than a decent HD. If I knew swapping to a different SSD would help, I'd do it but from what I've seen it doesn't look like that's likely to be the problem.

Sandforce has some great advantages but they mainly seem to be for writing and rewriting. For pure reads (especially from a brand new drive that just had data copied over once and left there), it doesn't seem like it would make much if any difference.

At this point I suspect the issue may be osx or the software, in real world use I'm getting loads (of mainly files of around 60k at a time) that are slower than the 4k benchmark I got.

Thanks for all the suggestions, any other ideas for testing or optimizing would be appreciated.

You are confusing sustained transfer rates with random access.

Typically drives are benchmarked on their sustained read/write rates for large blocks of data which for SSD's are north of 200-250MB/s. HD's traditionally perform at about half this rate.

Drives are also benchmarked for their 4k random read/write performance which is more reflective of actual OS/Apps workloads. For SSD's which have no moving parts, and much lower latencies, they can achieve random read speeds of 20+ MB/s (note that's about an order of magnitude lower than the sequential speeds which is because of the random nature of the access pattern - changing the address with every operation). Hd's traditionally score around 0.2 to 2MB/s! This is because the head has to move with each read, dramatically adding to the latency.

Here's a graph showing benchmarks for many SSD's and a couple of HD's (last two). In general, SSD's are anywhere from 10 to 100 times faster than HD's (depending on the drives being compared) on random workloads.

http://images.anandtech.com/graphs/oczvertex2_042810130947/22700.png

I highly suggest reading Anand's articles on SSDs for more background on what makes them tick and how they perform...
http://www.anandtech.com/tag/storage

EDIT: Also with respect to stripe or block size in RAID0 arrays... with SSD's, every write operation will normally incur a write amplification as a much larger block of NAND actually has to be read and rewritten... a 4K write might actually invoke a 128K block of NAND to be read and rewritten with the new data. For Intel SSD's the NAND blocks are 128K, meaning a stripe size of 128K is ideal as it means every write operation matches the NAND block size. I believe most other SSD's use a NAND block size of 512K, for which there is no matching stripe size, so you are best off using the largest stripe size available. Using a small stripe size will impact write performance as it forces a large write amplification with every write operation.

plinden
Oct 27, 2010, 06:23 PM
Sorry to tell you, but crucial sucks compared to the rest and many people know that. You should have gotten a sandforce based drive such as a G.Skill phoenix pro or a vertex 2. Those are much faster, and are fast in small file transfers too;

Sorry to tell you, but the Crucial C300 is a Sandforce based SSD and is one of the fastest on the market.

nanofrog
Oct 27, 2010, 08:27 PM
My source is ME. I got two 60gb G.SKILL Phoenix Pros from newegg. Sustained is 285MB/s read and 275MB/s write.

Heres a review
http://benchmarkreviews.com/index.php?option=com_content&task=view&id=551&Itemid=99999999
What benchmarking software are you using to get this?

I'm not saying the drives aren't fast, but the benchmarks differ, and in some cases, it could be burst/peak rates shown, not averages (what the 270 - 275MB/s range I stated = sustained = average is for SATA 3.0Gb/s).

For example, from the review you posted:
[/QUOTE]The G.Skill Phoenix Pro SSD delivered 286/273 MBps peak read and writes speeds using ATTO Disk Benchmark SSD speed tests with Everest Disk Benchmark produced 266/257 MB/s....[/QUOTE]
Please note that the ATTO numbers listed are peak, not sustained, and Everest had lower numbers (average/sustained values). Not a big difference in this case, but the differentiation is there.

For an MP, the only tool I can think of that's suitable, is AJA (very few OS X disk benchmark tools to start with). But XBench isn't sufficent for SSD's from what I've seen (rather "long in the tooth" as they say).

johnnymg
Oct 27, 2010, 08:48 PM
Sorry to tell you, but the Crucial C300 is a Sandforce based SSD and is one of the fastest on the market.

The C300 uses a Marvel controller:
http://www.bit-tech.net/hardware/storage/2010/07/07/crucial-realssd-c300-256gb-ssd-review/1

To the poster you were responding to: The C300 is a VERY fast and reliable drive. I haven't seen any speed change (6 months use) contrary to the Anandtech article. FWIW, I also have an OCZ SSD drive and it is slightly faster than the C300 drive................... but saying the C300 "sucks" is beyond uninformed.

cheers
JohnG

JavaTheHut
Oct 27, 2010, 09:24 PM
pulling out benchmarks and all, here is a Micron 128GB SSD Xbenchmark & AJA - To me it flies but if there others said that match or better cool!

philipma1957
Oct 27, 2010, 09:32 PM
You are confusing sustained transfer rates with random access.

Typically drives are benchmarked on their sustained read/write rates for large blocks of data which for SSD's are north of 200-250MB/s. HD's traditionally perform at about half this rate.

Drives are also benchmarked for their 4k random read/write performance which is more reflective of actual OS/Apps workloads. For SSD's which have no moving parts, and much lower latencies, they can achieve random read speeds of 20+ MB/s (note that's about an order of magnitude lower than the sequential speeds which is because of the random nature of the access pattern - changing the address with every operation). Hd's traditionally score around 0.2 to 2MB/s! This is because the head has to move with each read, dramatically adding to the latency.

Here's a graph showing benchmarks for many SSD's and a couple of HD's (last two). In general, SSD's are anywhere from 10 to 100 times faster than HD's (depending on the drives being compared) on random workloads.

http://images.anandtech.com/graphs/oczvertex2_042810130947/22700.png

I highly suggest reading Anand's articles on SSDs for more background on what makes them tick and how they perform...
http://www.anandtech.com/tag/storage

EDIT: Also with respect to stripe or block size in RAID0 arrays... with SSD's, every write operation will normally incur a write amplification as a much larger block of NAND actually has to be read and rewritten... a 4K write might actually invoke a 128K block of NAND to be read and rewritten with the new data. For Intel SSD's the NAND blocks are 128K, meaning a stripe size of 128K is ideal as it means every write operation matches the NAND block size. I believe most other SSD's use a NAND block size of 512K, for which there is no matching stripe size, so you are best off using the largest stripe size available. Using a small stripe size will impact write performance as it forces a large write amplification with every write operation.

so like I told the op borrow my pair of intel x-25m 80gb ssds set them at 128k and have at it. if they test well buy them after the test if they don't mail them back. it is obvious that for his purposes they are the lowest price and fastest at least according to your chart. the gen 1 intel smokes at 160gb size and i know from my testing the 80gb in raid0 is really fast.

milo
Oct 28, 2010, 08:37 AM
4K read sustained at 140MB/s and write was 177MB/s. That is MUCH faster than a harddrive.

Those are impressive numbers. It would be nice to be able to confirm that it gets similar results on a mac.

You are confusing sustained transfer rates with random access.

I understand the difference, it's just hard to know whether a particular kind of real world use is more like sequential reads or random reads (if it's more like random, then the SSD should have even more of an advantage, but it doesn't). Either way, I'm seeing performance that is about the same as HD or worse in this particular case. When I'm reading data at a rate lower than the 4k benchmark for this drive, I have to wonder if the problem is that the software is the bottleneck (which would mean that a faster drive might not make any difference, same with a raid).

VirtualRain
Oct 28, 2010, 11:41 AM
Those are impressive numbers. It would be nice to be able to confirm that it gets similar results on a mac.



I understand the difference, it's just hard to know whether a particular kind of real world use is more like sequential reads or random reads (if it's more like random, then the SSD should have even more of an advantage, but it doesn't). Either way, I'm seeing performance that is about the same as HD or worse in this particular case. When I'm reading data at a rate lower than the 4k benchmark for this drive, I have to wonder if the problem is that the software is the bottleneck (which would mean that a faster drive might not make any difference, same with a raid).

Almost all real-world OS/Apps related activity is Random Reads of relatively small files. Activities such as saving data files and/or reading media files are more sequential.

Hence benchmarks to pay attention to are your Random Reads of 4K blocks and your Secquential Reads/Writes of 256K Blocks. The others are irrelevant. In fact, Xbench's reporting of Sequential Reads of 4K blocks has no home in the real world as it implies your small files are neatly arranged one after the other on the drive which is never going to happen.

Your benchmark performance is as expected.

Ace134blue
Oct 30, 2010, 04:57 PM
Sorry to tell you, but the Crucial C300 is a Sandforce based SSD and is one of the fastest on the market.

Uh duh, as are many others. It Sucks compared to other sandforce drives like phoenix pros and vertex 2s.

What benchmarking software are you using to get this?

Sorry, i used HDTach. I had two drives that i tested, the boot drive and a plain drive with nothing on it. Sustained read was about 283~MB/s on the clean drive, but the boot drive was a bit lower.

nanofrog
Oct 30, 2010, 08:50 PM
Sorry, i used HDTach. I had two drives that i tested, the boot drive and a plain drive with nothing on it. Sustained read was about 283~MB/s on the clean drive, but the boot drive was a bit lower.
OK, so you tested under Windows (no problem). Is it the Trial or Registered version?

The Trial version tests random access, burst, and CPU utilization. You need the Registered version to get the sequential throughput. Assuming you do have a Registered version, I'd recommend doing multiple runs on disks with actual data on them (i.e. boot disk), not just a bare disk. Then average those results, as there usually are some differences between tests results (some can be quite notable).

This is one of the reasons for using multiple benchmark applications (though IOPS data is necessary for some rather than a simple throughput result), as they tend to show different results between them. But there's still sufficient information to make good decisions on (can see if one benchmark is way off of the others, ...). ;)

Ace134blue
Oct 31, 2010, 02:33 PM
OK, so you tested under Windows (no problem). Is it the Trial or Registered version?

The Trial version tests random access, burst, and CPU utilization. You need the Registered version to get the sequential throughput. Assuming you do have a Registered version, I'd recommend doing multiple runs on disks with actual data on them (i.e. boot disk), not just a bare disk. Then average those results, as there usually are some differences between tests results (some can be quite notable).

This is one of the reasons for using multiple benchmark applications (though IOPS data is necessary for some rather than a simple throughput result), as they tend to show different results between them. But there's still sufficient information to make good decisions on (can see if one benchmark is way off of the others, ...). ;)

The trial version Does show sustained reads, only thing it does not show is writes, which i dont care about. The boot drive gets 250~ or so. IOPS on this drive is 50000 on 4k writes i believe.

Concorde Rules
Oct 31, 2010, 03:13 PM
Sequential speeds SSD SATA II: Up to 270MB/s
Sequential speeds SSD SATA III: Up to 355MB/s now, 500MB/s (proposed) in Q1 '11

Sequential speeds HDD: Up to 145MB/s

I wouldn't exactly say give or or take the same. ;)

Anyway, the OCZ drives you proposed are actually not really expensive any more. The RevoDrive editions are about the same price as a similar sized Vertex 2.
Unfortunately, there are no OS X drivers available as of yet. OCZ promised to work on them, though.

I said the benchmarks, or to be more precise the XBench Benchmarks.

Uncached Read 256kb for my Velociraptor, 1Tb WD Black and Intel G2 SSD are all roughly the same. :p

I think :confused:

Can't remember what I was actually point out then.

But yes, I am well aware SSDs are faster than HDDs. ;) I was talking about the XBench Scores.

nanofrog
Oct 31, 2010, 07:46 PM
The trial version Does show sustained reads, only thing it does not show is writes, which i dont care about. The boot drive gets 250~ or so. IOPS on this drive is 50000 on 4k writes i believe.
For some strange reason I had recalled that it was missing both read and write sequential information (Trial version). Oops. :o

milo
Nov 1, 2010, 09:24 AM
Sorry, i used HDTach.

It's too bad there seems to be no mac benchmark, it would be good to verify that it is getting the same speeds running under OSX.

Ace134blue
Nov 3, 2010, 10:43 PM
For some strange reason I had recalled that it was missing both read and write sequential information (Trial version). Oops. :o

Its missing write only. lol :p

Ace134blue
Nov 3, 2010, 10:44 PM
It's too bad there seems to be no mac benchmark, it would be good to verify that it is getting the same speeds running under OSX.

Sorry, but im not using bootcamp or anything, using my gaming pc with these ssds