Resolving unRAID and Windows file transfer issues.

By | January 12, 2011

OpenFirst of all, I am only passably capable when it comes to Linux.  I know how to use it and can resolve a few moderate issues, if they occur, via Google and a little persistence.  I am not, by any means, any kind of expert or reference to turn to if there is real trouble.  Therefore, the tweaks presented in the rest of this post are at your own risk.  They are all taken from the unRAID forum by members that I trust and consider to be the subject matter experts.  Proceed with caution!

As I repost these tweaks, I will do my best to explain what they are doing.  The underlying issue here is that in applications or transfers between Windows and unRAID that involve thousands upon thousands of files, there can be network issues that arise due to too many open connections.  Once the connection limit is reached, Samba can completely ‘crap out’ and the network connection between client and server can grind to a trickle, or completely disappear altogether.  Luckily, the geniuses over at the unRAID forum know a few values that can be modified to help alleviate some of the systems, if not solve the issue altogether.

What you need to do:

  1. Take a snapshot of your system, create a restore point or whatever else you can do in case of disaster.  Editing the registry can lead to bad, bad things, so don’t blame me if you don’t implement a way to roll back.
  2. On your Vista/Win7 system, open the registry editor and go to HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\
  3. Find the LargeSystemCache D_WORD value and double-click it to enter edit mode.  Set Base to Decimal and change the Value data: to 1.  This is essentially setting your system to operate in File Server mode, maximizing data throughput for file sharing over the default of balanced.  Server OSes have this setting available via GUI, but client systems do not.  (If you are a Media Browser user, this setting alone may actually provide a slight performance boost if you have a large collection.  I can’t confirm it, but it makes sense knowing how this operates on server systems…up to you).
  4. After that is set, go to HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\ and find the Size D_WORD value.  Double-click that to enter edit mode and change the Value data: from 1 to 3.
  5. After accepting these changes, reboot your Windows system so the changes take effect.
  6. Now, on to the unRAID system.  Browser to your unRAID system’s flash share by doing something similar to \\ServerName\flash.
  7. Backup the contents of your flash,  just in case.
  8. Go into your config folder on the flash share.  If you have a file named smb-extra.conf, open it using Notepad or some other raw text editor.  If it does not exist, create it.
  9. If it exists, locate or add the following line: .
  10. Immediately below it, add: max open files = 16500.  This number is derived from the Windows 7 connection limit of 16,384+ open connections.
  11. Save and close your text editor to accept the changes.
  12. Establish a Telnet session (command line) with your unRAID server.  If you don’t know how to do this, refer to the unRAID forums.  I will give you a hint though…use Putty.
  13. Perform the following command after logging in to read in the new changes from your smb-extra.config file: smbcontrol smbd reload-config.
  14. You now have a connection cap between unRAID and your client system of 16,500 connections!

This is a little advanced for ordinary users and could possibly be ‘fixed’ in an upcoming unRAID release, although nothing is technically broken.  In the meanwhile, if your system(s) is/are working fine, leave it alone.  Otherwise, this could get things going if you’ve been beating your head against the wall for some time now.

Source: http://lime-technology.com/forum/index.php?topic=5004.0

One thought on “Resolving unRAID and Windows file transfer issues.

  1. zAdok

    Thanks for this great post. For those wanting to know a little more about these values, see below.

    Extract from: http://support.microsoft.com/kb/232271

    To configure the Server service, follow these steps:
    In Control Panel, double-click Network.
    On the Services tab, click the Server service, and then click Properties.
    There are four configuration options for the Server service listed here:
    Minimize Memory Used
    Balance
    Maximize Throughput for File Sharing
    Maximize Throughput for Network Applications
    WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

    When you configure one of the four options for the Server service, the information is saved to the following two registry keys:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\size
    Your choices for this registry key are 1,2 and 3.
    1 = Minimize Memory Used
    2 = Balance
    3 = Maximize Throughput for File Sharing and Maximize Throughput for Network Applications
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache

    Your choices for this registry key are 0 and 1.
    1 = Maximize Throughput for File Sharing
    0 = Maximize Throughput for Network Applications
    Some programs, such as SQL and Exchange, set this value during an installation. For these programs, the optimal setting is 0.
    0 = Indicates that the computer does not go outside its cache pool and use program memory to perform I/O functions.

    1 = Indicates that the computer looks outside of its cache pool and uses program memory to perform I/O functions. This occurs if the cache is full.

    Reply

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.