unraid-tunables-tester.sh - A New Utility to Optimize unRAID md_* Tunables


Recommended Posts

Here's my tunables report.  I am trying to understand these results and I had a few ideas for the script if you don't mind :)

 

First, would it make sense for automatic mode to have a test "zero" based on unRAID's default values so it is easier to see what the improvement will be?

 

Second, would you perhaps consider adding a sixth column to the report to show how much RAM each option takes? I think that would help me choose between test 2 (the "best bang") and test 5 (which looks like a pretty good improvement over the best bang)

 

It might also be nice to have an option to limit the amount of ram that automatic mode uses.  For instance, If I know I don't want to use over a certain amount (200? 300?) then I don't really need to find unthrottled values, although it is kind of interesting :)

 

Thanks for writing this!

 

Tunables Report from  unRAID Tunables Tester v2.2 by Pauven

NOTE: Use the smallest set of values that produce good results. Larger values
      increase server memory use, and may cause stability issues with unRAID,
      especially if you have any add-ons or plug-ins installed.

Test | num_stripes | write_limit | sync_window |   Speed 
--- FULLY AUTOMATIC TEST PASS 1 (Rough - 20 Sample Points @ 3min Duration)---
   1  |    1408     |     768     |     512     | 147.0 MB/s 
   2  |    1536     |     768     |     640     | 148.2 MB/s 
   3  |    1664     |     768     |     768     | 148.6 MB/s 
   4  |    1920     |     896     |     896     | 149.2 MB/s 
   5  |    2176     |    1024     |    1024     | 150.4 MB/s 
   6  |    2560     |    1152     |    1152     | 150.8 MB/s 
   7  |    2816     |    1280     |    1280     | 151.0 MB/s 
   8  |    3072     |    1408     |    1408     | 151.2 MB/s 
   9  |    3328     |    1536     |    1536     | 151.0 MB/s 
  10  |    3584     |    1664     |    1664     | 151.3 MB/s 
  11  |    3968     |    1792     |    1792     | 151.4 MB/s 
  12  |    4224     |    1920     |    1920     | 151.4 MB/s 
  13  |    4480     |    2048     |    2048     | 151.1 MB/s 
  14  |    4736     |    2176     |    2176     | 151.1 MB/s 
  15  |    5120     |    2304     |    2304     | 151.2 MB/s 
  16  |    5376     |    2432     |    2432     | 151.4 MB/s 
  17  |    5632     |    2560     |    2560     | 151.1 MB/s 
  18  |    5888     |    2688     |    2688     | 151.3 MB/s 
  19  |    6144     |    2816     |    2816     | 151.4 MB/s 
  20  |    6528     |    2944     |    2944     | 151.5 MB/s 
--- Targeting Fastest Result of md_sync_window 2944 bytes for Final Pass ---
--- FULLY AUTOMATIC TEST PASS 2 (Final - 16 Sample Points @ 4min Duration)---
  21  |    6272     |    2824     |    2824     | 153.7 MB/s 
  22  |    6288     |    2832     |    2832     | 154.0 MB/s 
  23  |    6304     |    2840     |    2840     | 154.0 MB/s 
  24  |    6328     |    2848     |    2848     | 153.9 MB/s 
  25  |    6344     |    2856     |    2856     | 153.9 MB/s 
  26  |    6360     |    2864     |    2864     | 153.7 MB/s 
  27  |    6376     |    2872     |    2872     | 153.8 MB/s 
  28  |    6400     |    2880     |    2880     | 153.9 MB/s 
  29  |    6416     |    2888     |    2888     | 154.0 MB/s 
  30  |    6432     |    2896     |    2896     | 154.0 MB/s 
  31  |    6448     |    2904     |    2904     | 154.0 MB/s 
  32  |    6464     |    2912     |    2912     | 154.0 MB/s 
  33  |    6488     |    2920     |    2920     | 153.9 MB/s 
  34  |    6504     |    2928     |    2928     | 153.6 MB/s 
  35  |    6520     |    2936     |    2936     | 153.8 MB/s 
  36  |    6536     |    2944     |    2944     | 153.9 MB/s 

Completed: 2 Hrs 7 Min 50 Sec.

Best Bang for the Buck: Test 2 with a speed of 148.2 MB/s

     Tunable (md_num_stripes): 1536
     Tunable (md_write_limit): 768
     Tunable (md_sync_window): 640

These settings will consume 138MB of RAM on your hardware.


Unthrottled values for your server came from Test 22 with a speed of 154.0 MB/s

     Tunable (md_num_stripes): 6288
     Tunable (md_write_limit): 2832
     Tunable (md_sync_window): 2832

These settings will consume 564MB of RAM on your hardware.
This is 449MB more than your current utilization of 115MB.
NOTE: Adding additional drives will increase memory consumption.

In unRAID, go to Settings > Disk Settings to set your chosen parameter values.

Link to comment

Has anyone run tunables.tester with the new 64bit unRAID?

Did it make a difference on the recommended tunables?

 

I have. I got the same performance with lower numbers.

 

I'm using the Balls to the Wall setting but the script reported slightly higher values for me for optimal speeds. I can't speak to same performance et all because I was focusing on the fastest performance.

Link to comment

There is an improvement for the Balls to the Wall setting on 64bit vs 32bit but it's marginal. For around the first half of the smallest drive, I saw maybe 10MB/sec improvement but after that things were pretty even.

 

http://strangejourney.net/UNRAID/32vs64.html (you can zoom in on the graph)

 

Odd how Seagate drives seem to consistently have a performance hit in the first 20GB - do other brands show this as well?

Link to comment

There is an improvement for the Balls to the Wall setting on 64bit vs 32bit but it's marginal. For around the first half of the smallest drive, I saw maybe 10MB/sec improvement but after that things were pretty even.

 

http://strangejourney.net/UNRAID/32vs64.html (you can zoom in on the graph)

 

Odd how Seagate drives seem to consistently have a performance hit in the first 20GB - do other brands show this as well?

 

I have similar performance hit results with my seagate drives as well. my WD, hitatchi and samsung drives do not.

Link to comment
  • 2 months later...

Thank you Pauven, wherever you are!

 

Sped me up several MB/sec!

 

But more important than that, now I know that I have these setting set right. Before that whenever I saw that screen I scratched my head and said WTF do I do with this. Now I know! :)

Link to comment
  • 1 month later...
  • 2 weeks later...

I have just started running this and I noticed my starting speeds for fully automatic test pass 1 are significantly lower than most that are posted here, with mine starting at 32.8mb/s. Which is very confusing when my last parity check started at around 110mb/s and ended at around 79mb/s, this was two days ago. (sig is correct for all hardware and unRAID version)

Should I be concerned?

Link to comment
  • 2 weeks later...

This is what I get

 

Tunables Report from  unRAID Tunables Tester v2.2 by Pauven

 

NOTE: Use the smallest set of values that produce good results. Larger values

      increase server memory use, and may cause stability issues with unRAID,

      especially if you have any add-ons or plug-ins installed.

 

Test | num_stripes | write_limit | sync_window |  Speed

---------------------------------------------------------------------------

  1  |    1280    |    768    |    384    |  0.0 MB/s

  2  |    1408    |    768    |    512    |  0.0 MB/s

  3  |    1536    |    768    |    640    |  0.0 MB/s

  4  |    1664    |    768    |    768    |  0.0 MB/s

  5  |    1920    |    896    |    896    |  0.0 MB/s

  6  |    2176    |    1024    |    1024    |  0.0 MB/s

  7  |    2560    |    1152    |    1152    |  0.0 MB/s

  8  |    2816    |    1280    |    1280    |  0.0 MB/s

  9  |    3072    |    1408    |    1408    |  0.0 MB/s

  10  |    3328    |    1536    |    1536    |  0.0 MB/s

  11  |    3584    |    1664    |    1664    |  0.0 MB/s

  12  |    3968    |    1792    |    1792    |  0.0 MB/s

  13  |    4224    |    1920    |    1920    |  0.0 MB/s

  14  |    4480    |    2048    |    2048    |  0.0 MB/s

 

Completed: 0 Hrs 0 Min 58 Sec.

 

Best Bang for the Buck: Test 0 with a speed of 1 MB/s

 

    Tunable (md_num_stripes): 0

    Tunable (md_write_limit): 0

    Tunable (md_sync_window): 0

 

These settings will consume 0MB of RAM on your hardware.

 

 

Unthrottled values for your server came from Test 0 with a speed of  MB/s

 

    Tunable (md_num_stripes): 0

    Tunable (md_write_limit): 0

    Tunable (md_sync_window): 0

 

These settings will consume 0MB of RAM on your hardware.

This is -115MB less than your current utilization of 115MB.

NOTE: Adding additional drives will increase memory consumption.

 

 

 

Not sure why?

 

Link to comment

I see in the first few pages of this thread that I should be running my server in safe mode to run the tunables script. I can see how to start the server in Maintenance Mode from the main page of the web gui, but I don't see anything called safe mode. Google found a few references but no description of how to launch it. How do I start in safe mode?

Link to comment

I see in the first few pages of this thread that I should be running my server in safe mode to run the tunables script. I can see how to start the server in Maintenance Mode from the main page of the web gui, but I don't see anything called safe mode. Google found a few references but no description of how to launch it. How do I start in safe mode?

It should be an option when you boot up the unraid server.  Check the syslinux.cfg in your flash drive to see it is an option before rebooting.
Link to comment

I see in the first few pages of this thread that I should be running my server in safe mode to run the tunables script. I can see how to start the server in Maintenance Mode from the main page of the web gui, but I don't see anything called safe mode. Google found a few references but no description of how to launch it. How do I start in safe mode?

It should be an option when you boot up the unraid server.  Check the syslinux.cfg in your flash drive to see it is an option before rebooting.

I see a line in the file that says Safe Mode (No Plugins). Don't know how to set this option though.

Link to comment

I see in the first few pages of this thread that I should be running my server in safe mode to run the tunables script. I can see how to start the server in Maintenance Mode from the main page of the web gui, but I don't see anything called safe mode. Google found a few references but no description of how to launch it. How do I start in safe mode?

It should be an option when you boot up the unraid server.  Check the syslinux.cfg in your flash drive to see it is an option before rebooting.

I see a line in the file that says Safe Mode (No Plugins). Don't know how to set this option though.

 

If you have a monitor hooked up to your UnRAID server you can scroll down the boot menu to this option. Otherwise if you are only able to run remotely you can edit syslinux.cfg and move the value "menu default" to the safe option and reboot. Once done, you can move "menu default" back where you want it.

 

Link to comment

It's on the boot screen with memtest right. I knew I had seen it somewhere. I just use IPMI when booting (headless) so I don't normally see that menu. Thanks.

You should be able to see it with IPMI.  Just bring up the IPMI display before you start the PC with IPMI then you can see the bios as well as the unRAID boot screen.
Link to comment

It's on the boot screen with memtest right. I knew I had seen it somewhere. I just use IPMI when booting (headless) so I don't normally see that menu. Thanks.

You should be able to see it with IPMI.  Just bring up the IPMI display before you start the PC with IPMI then you can see the bios as well as the unRAID boot screen.

Yes thanks. I seldom use IPMI unless I'm making changes to bios so I don't usually see any startup screens. Actually I'll probably just make the changes to syslinux.cfg as bkastner described. The boot screen pops up for such a short time that's it's a real pain trying to select something other than the default.

 

I'd like to know though, can I use commented lines in syslinux.cfg? That way I could add the default code for all 3 options with comments and just delete comments for whatever option I wanted to boot into.

Link to comment

I'd like to know though, can I use commented lines in syslinux.cfg? That way I could add the default code for all 3 options with comments and just delete comments for whatever option I wanted to boot into.

Don't know about comments, but you can just cut/paste the "menu default" line which is just as easy.
Link to comment

I'd like to know though, can I use commented lines in syslinux.cfg? That way I could add the default code for all 3 options with comments and just delete comments for whatever option I wanted to boot into.

Don't know about comments, but you can just cut/paste the "menu default" line which is just as easy.

That's true but I'm sure that a couple of years from now when I'm trying to figure out  "How I booted into Safe Mode last time" I won't remember what I did. :D

 

Sometimes it helps to leave notes for myself.

 

On the other hand, I probably won't even remember which cfg file to use so it wouldn't matter anyway. ???

Link to comment
  • 2 months later...

I have selected the Best bang for buck. I ran the script in safe mode on V5.5 and have 16GB of ram. I would have liked to have selected a higher MB/s but Im worried about lower memory as I run Dynamix, Dynamix Health, Dynamix System Temp, APC UPS and Cache Dirs. I have 5 x 3TB WD Reds, 1 x 4TB WD Red and a 4TB WD Red Parity. I would have expected to be able to run a much higher MB/s with 16GB Ram but it doesn't seem like I can if I want to avoid running out of what I presume is lower Memory?

TunablesReport.txt

Link to comment
  • 3 weeks later...

Will their be a new version of this script now that unraid 6 beta 7 dropped md_write_limit?

 

Interesting!  I had no idea that this had been changed.  I'm not sure of the impact.  I haven't played with the 6.0 beta yet, and never will as all I have is a production server.  I might do a 6.0 release candidate, but will probably wait until final. 

 

I actually have a newer version of the script with new features that I never finished and released.  I got very busy on a major project and had to disappear for a while. 

 

I have selected the Best bang for buck. I ran the script in safe mode on V5.5 and have 16GB of ram. I would have liked to have selected a higher MB/s but Im worried about lower memory as I run Dynamix, Dynamix Health, Dynamix System Temp, APC UPS and Cache Dirs. I have 5 x 3TB WD Reds, 1 x 4TB WD Red and a 4TB WD Red Parity. I would have expected to be able to run a much higher MB/s with 16GB Ram but it doesn't seem like I can if I want to avoid running out of what I presume is lower Memory?

 

Everybody wants higher MB/s, no doubt.  I honestly don't think you'd ever notice the difference between test 2 and test 21 in day to day usage, as that's only about 1% difference in speed, and not worth the extra memory usage.

 

This is what I get

 

Tunables Report from  unRAID Tunables Tester v2.2 by Pauven

 

NOTE: Use the smallest set of values that produce good results. Larger values

      increase server memory use, and may cause stability issues with unRAID,

      especially if you have any add-ons or plug-ins installed.

 

Test | num_stripes | write_limit | sync_window |  Speed

---------------------------------------------------------------------------

  1  |    1280    |    768    |    384    |  0.0 MB/s

  2  |    1408    |    768    |    512    |  0.0 MB/s

  3  |    1536    |    768    |    640    |  0.0 MB/s

  4  |    1664    |    768    |    768    |  0.0 MB/s

  5  |    1920    |    896    |    896    |  0.0 MB/s

  6  |    2176    |    1024    |    1024    |  0.0 MB/s

  7  |    2560    |    1152    |    1152    |  0.0 MB/s

  8  |    2816    |    1280    |    1280    |  0.0 MB/s

  9  |    3072    |    1408    |    1408    |  0.0 MB/s

  10  |    3328    |    1536    |    1536    |  0.0 MB/s

  11  |    3584    |    1664    |    1664    |  0.0 MB/s

  12  |    3968    |    1792    |    1792    |  0.0 MB/s

  13  |    4224    |    1920    |    1920    |  0.0 MB/s

  14  |    4480    |    2048    |    2048    |  0.0 MB/s

 

Completed: 0 Hrs 0 Min 58 Sec.

 

Best Bang for the Buck: Test 0 with a speed of 1 MB/s

 

    Tunable (md_num_stripes): 0

    Tunable (md_write_limit): 0

    Tunable (md_sync_window): 0

 

These settings will consume 0MB of RAM on your hardware.

 

 

Unthrottled values for your server came from Test 0 with a speed of  MB/s

 

    Tunable (md_num_stripes): 0

    Tunable (md_write_limit): 0

    Tunable (md_sync_window): 0

 

These settings will consume 0MB of RAM on your hardware.

This is -115MB less than your current utilization of 115MB.

NOTE: Adding additional drives will increase memory consumption.

 

 

 

Not sure why?

 

 

That's crazy!!  I have no idea what happened here.  Hope you got it all figured out.

 

Thank you Pauven, wherever you are!

 

Sped me up several MB/sec!

 

But more important than that, now I know that I have these setting set right. Before that whenever I saw that screen I scratched my head and said WTF do I do with this. Now I know! :)

 

You're welcome!  Glad you found it of use. 

 

I've been gone a long while, and figured this script had fallen into the dark bowels of the unRAID forums, and was surprised to stumble onto it on the first page.  Couldn't resist giving a shout out.

 

-Paul

Link to comment
  • 1 month later...

Hey Hellboy,

 

I'm not sure, but probably it is safe.

 

Primarily the tester is just running a parity check from the command line, so that should be safe regardless of what version is running.

 

The memory parameters that are being adjusted between runs simply affect how much memory is allocated to the process, and should be okay to tweak unless Tom has made changes to these tunables.  In fact, with v6 being 64 bit, you may be able to push these numbers much higher than ever before.  Worst case, you're still just running a non-correcting parity check, so if something happens your data shouldn't be modified. 

 

All that said, let me be clear, I am still on v5.  I only have my one production box, and I don't run beta software on it.  I have not tested this tool on v6.anything, though I think other users in here have done so.

 

And since you are asking if this is safe to run on 6b10a, my gut is telling me you are running beta on a production box with data you actually care about, something I don't advise, and in that case I really wouldn't advise running this tool either.

 

If you end up running it, be sure to share your results!

 

-Paul

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.