unRAID performance issue?


Recommended Posts

I haven't really visited this forum all that often, mainly because my unRAID array has been up and running fine for the past two years or more.  I just recently had some issues that I'm working out and after reading some of these threads I'm starting to feel that my array isn't running as well as I originally thought.  Here's a screenshot of my array while it's rebuilding parity.  As you can see, the estimated speed is well below what most others are reporting for their arrays.

 

My configuration consists of:

 

Gigabyte GA-MA69GM-S2H motherboard

AMD Athlon 64 X2 4200+ CPU

2GB RAM

Promise SATA300 TX4 4-port SATA card

Supermicro AOC-SATA2-MV8

14 hard drives shown in the attached image

Antec Nine Hundred case

3 Supermicro 5-in-3 SATA backplanes

Corsair TX650W PSU

 

I believe the Supermicro SATA card only allows the drives to work as SATA1 devices so could that be why I'm not seeing the same kind of speeds that others are seeing?  If that's the case, are there any recommendations for a PCI-E 4-port card that would server me better?  I have a 2nd Promise card that I never installed but I only have one PCI-E x4 slot and one x16 slot available as the motherboard only has two standard PCI slots.

 

Aside from the long times to rebuild parity and restore a drive to the array (36+ hours for each process) I am still able to stream Blu-Ray movies to my HTPC with no glitches and totally smooth playback.

 

P.S.  I just ran across the thread for the Supermicro AOC-SASLP-MV8 - 8 8-port PCI-E SATA controller card.  This looks like it would be a great replacement for my AOC-SATA2-MV8 and it is apparently supported by the latest version of unRAID.

Tower.gif.6f2b466b712d08ec1ec3c09693f6eb7f.gif

Link to comment

When you have so many drives active at the same time, and many of them on the PCI bus, you saturate the PCI bus.... hence the slow parity check times.

 

Parity check is generally the only place this will affect you.  Regular reading, and writing using just 2 disks, will likely not be affected.  But I would make sure the parity disk is connected directly to the mobo and not to the PCI card.

Link to comment

I'm pretty sure that's the way I have the parity disk connected.  The first four drives are connected directly to the motherboard SATA connectors and the parity drive is showing up as drive sdb.  I just ordered a Supermicro AOC-SASLP-MV8 8-port card that connects to the PCI-E x4 slot so I'm hoping that will improve my speeds during parity checks and data rebuilds.

Link to comment

What BubbaQ is saing is that your new SAS Supermicro card will only help you if you can use it to replace the Promise TX4.  If you want to increase your parity check times, you will need to stop using the PCI bus altogether (which means ditching your Promise TX4).

 

Your old SATA Supermicro card is currently using a PCI-E slot, right?  If that is the case (and if you motherboard can support both Supermicro cards at once), then you should be fine.

 

Also, don't forget to buy the appropriate SAS cables for your new card, they don't come with it.

Link to comment

Don't worry about SATA 1, it is not slowing you down.  At 150MB/s bi-directional, it is faster than your fastest drive, and faster than the PCI bus at its most optimal (only one drive or device on it).

 

While it is true that it is probably the quantity of your drives sharing the PCI bus that is slowing your parity check speeds, there could also be a single drive having problems.  The parity check cannot go faster than the slowest drive.  I would check the syslog for drive errors, and SMART reports for all of your drives, to make sure all are healthy.  Cable errors also can slow the communications way down, without ever failing a communication or causing read or write failures or any other obvious and very visible error.  They would however only be visible in the syslog.  That 11MB/s in your pic is very possible with a drive or 2 running at UDMA/33, slowed because of cable issues.  (Cable replacements are much cheaper than controller replacements!)

Link to comment

Thanks for the insight and recommendations.  Both the Promise 4-port card and the Supermicro 8-port card are running off the PCI bus, which is undoubtedly bogging it down.  I'm going to replace the 8-port PCI card with the newer Supermicro 8-port PCI-E card, reducing the number of drives on the PCI bus to just four.  I'll also be replacing all of the SATA cables connected to the 8-port card with a pair of breakout cables required for use with the PCI-E SATA controller.  I've got lots of extra SATA cables still in plastic bags so I may go ahead and swap the rest out while I'm at it.  I'm not sure how to get the syslog but I'm sure a search through the forum will reveal the process.

Link to comment

I'm not sure how to get the syslog but I'm sure a search through the forum will reveal the process.

Easiest, if you are on a recent version of unRAID, is to put

//tower/log/syslog

in your browser as the URL.

 

Otherwise, instructions are in the wiki under troubleshooting.

Link to comment

Once you do the drive replacement, move the 4 smallest drives to the PCI bus. You will be bottle-necked to a maximum upper limit of 33,333 KB/sec until they're finished. The limit is 133,333 KB/sec for the entire PCI bus that is shared across all devices. If you have 2 drives your upper-bounds is 66,666 KB/sec, 3 drives would be  44,444 KB/sec, and 12 drives would be 11,111 KB/sec. The actual throughput will be lower than this, but now you know what your absolute upper bounds would be.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.