6_6_6

NCQ: Best Upgrade For a Power User!

Recommended Posts

We're just too busy to test it. :P

That said on this old box here (Pentium D, so I think it's ICH7) and a WD Raptor 150GB on Windows 7, in HD Speed it sustains about 20MB/sec on the first concurrent run and 1.1MB/sec on the second one. That said this is a known issue due to poor NCQ implementation (if it's even enabled on this stupid box, it's not something I am worried about :P )

Share this post


Link to post
Share on other sites

System specs: Gigabyte EP45-DS3 (=ICH10) motherboard. Win2k3 x64 SP2. AHCI not enabled (i think). Is there a way to confirm without leaving Windows? Additional controllers: Adaptec 29160 for the Hitachi drive, Silicon Image 3114 for Samsung HD501LJ and WD WD5000AAKS-00TMA0.

hdspeed-adaptec_29160-hitachi_hus151436VL3600_S3C0.jpg

Crappy result, but 15k rpm still helps it stay above 10 MB/s

hdspeed-ich10-seagate_ST3320620AS_3.AAD.jpg

hdspeed-ich10-samsung_hd103uj_1aa01112.jpg

Works great with 2 instances!

With 3rd instance (0%,33%,66%) they all dropped down to 5 MB/s so not perfect

hdspeed-ich10-seagate_ST31500341AS_CC1H.jpg

3 instances (0%,33%,66%): 16.3 MB/s each!

4 instances (0%, 25%, 50%, 75%): 11.3 MB/s each!

Results were same for firmware CC1G. Congraz Seagate.

hdspeed-sil3114-samsung_HD501LJ_CR10.jpg

hdspeed-sil3114-wd_WD5000AAKS-00TMA0_12.0.jpg

Pretty good with 2 instances.

3 instances (0%, 33%, 66%): 8.5 MB/s each so slows down somewhat.

hdspeed-ich10-wd_WD5000AAKS-00YGA_12.01C02.jpg

Crappy result. (Basic 1 instance STR is higher than that of WD5000AAKS-00TMA0)

Share this post


Link to post
Share on other sites

Discjet, thanks for the effort. So without NCQ / AHCI you're not getting spikes in the transfer rate and overall rate sucks. Now just one thing is missing: what do you get if you try to skip through a video (preferrably HD) if a copy within the same disk is going on? I suppose it's not snappy either?

@Topic: I'm wondering.. so far it looks to me that our normal HDDs with NCQ are so bad at skipping through the video because they interval in which they switch between the I/O streams is too large, i.e. the distance between the spikes is too much. It's less for the "good" Seagate.

However, in case of the Intel G2 the distance is so low that we can't see spikes. It's just 2 streams at a constant 100 MB/s. How the hell could that not be snappy? The video player must not get any / enough data back for several seconds, otherwise it couldn't stutter like this. So the splitting of transfer rates must be different than with 2 instances of HDSpeed. Like 200 MB/s for HDSpeed and <1 MB/s for the video.

Actually this is what I just checked: running 1 HDSpeed read test (set test size to 256 kb, results on "auto" are less repeatable!) and trying to watch / skip through a video. Using an HD video it's as bad as with the copy operation. And I can see more: the HDSpeed transfer rate hardly drops at all. There are just small spikes / modulations visible and the transfer rate is hardly any lower than if it wasn't for the video. Using a normal video doesn't change much.

So due to some reason the HDD is giving the background I/O stream lot's of bandwidth, but the important one is starved. I wonder why?

MrS

Share this post


Link to post
Share on other sites

Same box as above, but the WD Caviar 640GB in it (originally pulled from a Mac Pro).

Two instances of HD_Speed leads to smooth graphs for both, one averages 32.8MB/sec, the second does 18.1MB/sec. Much much better than the Raptor 150GB...

Share this post


Link to post
Share on other sites

WD Caviar 250GB Blue WD2500AAJS-60M0A1... horrible. Different box though. First instance is 730KB/sec, second is 74.9MB/sec, both graphs are smooth at least.

Anyway back to the day job. :)

Share this post


Link to post
Share on other sites

Intel X25-M G2 at home on ICH9R in AHCI mode, Windows 7 with the Microsoft driver...

With HD_Speed set to auto block size, one hits about 9MB/sec, the second instance, 241MB/sec sustained.

With HD_Speed set to 256KB block size, both instances sustain about 120MB/sec.

Had a little extra time, tried three instances of HD_speed, one at 0%, one at 33%, one at 66%, all with 256KB... all three average ~87.3MB/sec sustained.

Just for kicks, tried it on my 5-disk RAID6 with Seagate Barracuda ES.2 1TB's on my Areca ARC-1680. It averages about 60~80MB/sec for each of the two instances of HD_speed and 256KB block size, about 42~54MB/sec for each of the three instances when running three instances of HD_speed.

Share this post


Link to post
Share on other sites

You don't have to test it. You can just do it.

Very simple:

- Find a 10GB or similiar size file. Right click, copy; right click paste.

- Start any HD movie. And try to skip through it.

We're just too busy to test it. :P

Share this post


Link to post
Share on other sites
MrSpadge' date='25 May 2010 - 04:49 PM' timestamp='1274824173' post='261985']However, in case of the Intel G2 the distance is so low that we can't see spikes. It's just 2 streams at a constant 100 MB/s. How the hell could that not be snappy?

Exactly!

But at the case of Intel, we are not just reading from the drive (as in HD Speed). We are also WRITING to the drive too (file copy/paste).

In Intel, when the copy operation is done to another drive, the video is fluid like Seagate (but not as good, though).

It is when we mix the writes in, it totally screws up.

On HD Speed, I gave the example 'alternating spikes' of Seagate to be able to solidly measure drive behaviour. So far, only Seagate exhibits alternating spikes this way on READs... And that is the only drive responsive on more than one operation on the drive.

Share this post


Link to post
Share on other sites

You don't have to test it. You can just do it.

Did you not see my last 3 replies (above this one) to your thread? :P
Very simple:

- Find a 10GB or similiar size file. Right click, copy; right click paste.

- Start any HD movie. And try to skip through it.

'cept I don't have either of those on 95% of my boxes. :(

Anyway I happen to be at home right now :) , and copying a 10GB file from my RAID6 to my X25-M while playing a 720p x264 movie (off the RAID6) does not cause any issues, but considering the X25-M isn't doing very much in this test, I wouldn't expect it to...

And predictably, yes, it does pause severely when I am copying one file from the X25-M to the RAID6 while trying to play a movie off the RAID6 as well, at least til the cache is exhausted and the array starts seeking normally (then it still pauses...).

Reading two HD movies and skipping around off the RAID6 works just fine, but then we'd expect it to...

Share this post


Link to post
Share on other sites

What is the outcome when:

1. 10GB copied from X25M to X25M and a movie is started and seeked on X25M?

2. 10GB copied from RAID to RAID and a movie is started and seeked on RAID?

Did you not see my last 3 replies (above this one) to your thread? :P

'cept I don't have either of those on 95% of my boxes. :(

Anyway I happen to be at home right now :) , and copying a 10GB file from my RAID6 to my X25-M while playing a 720p x264 movie (off the RAID6) does not cause any issues, but considering the X25-M isn't doing very much in this test, I wouldn't expect it to...

And predictably, yes, it does pause severely when I am copying one file from the X25-M to the RAID6 while trying to play a movie off the RAID6 as well, at least til the cache is exhausted and the array starts seeking normally (then it still pauses...).

Reading two HD movies and skipping around off the RAID6 works just fine, but then we'd expect it to...

Share this post


Link to post
Share on other sites

1. 10GB copied from X25M to X25M and a movie is started and seeked on X25M?

2. 10GB copied from RAID to RAID and a movie is started and seeked on RAID?

Exactly - so far that's the only information we need. Apart from some higher wisdom out of Seagate land ;)

And to clarify: my WD 640 Blue (actually from before the time it was named blue) also has alternating spikes if I fire 2 HDSpeed reads at it. However, the time between the spikes is ~3s, so very long. To me it seems like this time is less on your Seagate.

And a good point about the Intel being screwed if writes are included - that makes much more sense!

MrS

Share this post


Link to post
Share on other sites
Intel being screwed if writes are included - that makes much more sense!
Yep, well that and the Intel (or any SSD) has the block rewrite penalty, although the drive itself might be fast enough that it won't be too bad if it's a fast one-- and sadly the X25-M G2 is not a terribly fast drive for large block sequential writes.

Now I have to remember to check Storagereview after I go home, which doesn't happen very often...

Share this post


Link to post
Share on other sites

Tested on my 2.5" WD 320 Black: better than my desktop, still 3s until it starts playing after I skip to a different position (one HDSpeed running). But afterwards it's fluent immediately, no continued sync problems like on the 640 Blue.

MrS

Share this post


Link to post
Share on other sites

Mrs,

Is there any writes to the drive while doing that?

MrSpadge' date='29 May 2010 - 10:14 AM' timestamp='1275146089' post='262065']

Tested on my 2.5" WD 320 Black: better than my desktop, still 3s until it starts playing after I skip to a different position (one HDSpeed running). But afterwards it's fluent immediately, no continued sync problems like on the 640 Blue.

MrS

Share this post


Link to post
Share on other sites

Okay, I think we need to clarify testing methodology friends. Forget about HD Speed.

Here is what needs to be done:

1. Copy any 10GB file from the drive ONTO the drive itself.

2. While the copy is in progress, start any HD video (>5GB) and try to skip through it. Try to use WMP since that is standard in all Microsoft.

If the video is fluid and instant without stuttering, we have a winner. Please post. If video is not fluid, don't bother posting.

I can do that with Seagate 750GB (with NCQ on). Can you?

This is the most simplistic approach to visualize the issue -- showing that we can do simultaneous operations on our drives.

I can also do a md5sum, virus scan, zip a 10GB folder of thousands of files, copy a file from the drive onto the drive... ALL AT THE SAME TIME... And can still seek through that video fluidly... or HAVE THE PROGRAM I JUST STARTED IN THE FOREGROUND RESPONSIVE while the rest are running at the background!

Try doing that!

On Intel X25-M, I can do all those too... But I must click to start the program, go wash the dishes, and come back. Hope the visitors were many and dishes plenty, otherwise, the program probably still wouldnt have started when washing is over!

Edited by 6_6_6

Share this post


Link to post
Share on other sites

Mrs,

Is there any writes to the drive while doing that?

Cracks me up that he's dropped the punctuation of Mr. S to just Mrs, LOL.

Share this post


Link to post
Share on other sites

What about the possibility that the SD15 Seagate 7200.11 750GB was a mistake? What if HD makers intentionally keep their SATA NCQ algorithm a little crappy, so that people will still buy the SAS/SCSI? Maybe they accidentally had the wrong performance profile in SD15, and 'corrected' it in SD1A. It would make sense that they detune the performance based on what Windows does, but they can't completely screw it up without being obvious in benchmarks or non-compliant. When you use other OSes, or put a smart controller in between, the 'problem' vanishes because you no longer have a Windows access pattern.

This would explain why it seems that some PATA drives performed better than NCQ. Before NCQ, IDE had no way to challenge SCSI's exclusive ability to issue multiple commands. When SATA NCQ appeared, something had to be done to make sure it didn't threaten those profits.

It would explain a lot of these strange outcomes, and why nobody particularly seems to care.

Also, check this list of devices out: Possibly the same problem or related?

https://ata.wiki.kernel.org/index.php/Known_issues#Affected_devices_2

Edited by Winders

Share this post


Link to post
Share on other sites

What if the problem is in the queue handling of the drive? Linuxers seem to have seen that phenomenon and the kernel allows them to reduce queue. One found that his problem disappeared at max queue of 4. Is there a way to have the controller only allow a queue depth of 16, instead of 32?

I have tried setting HLM\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Device\NumberOfRequests to various settings like 0x1, 0x4, 0x8, 0x10, 0x18. But I'm not sure the iaStor.sys even uses the setting. If somebody could find a way to test that, perhaps we would know.

If not, perhaps a way to hack the driver to a max queue depth less than 32?

Edited by Winders

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now