Figured it might be helpful to put all of the setting changes I have found to increase file copy performance in one place.
Lets start with settings on client computers.
Windows XP Home/PRO as the client:
Using a large system cache can help increase performance on some clients. See post #8 in the following link for information on how to set this. http://forums.smallnetbuilder.com/showthread.php?t=736
Turning off NetBIOS can also increase performance a little bit (1% or so) but you no longer can access shares by using names when it is turned off. To access shares with NetBIOS off you need to know the IP address of the computer you are trying to connect to. For example you would need to use \\192.168.0.10 to access a SMB share instead of just typing \\computer. Turning this off also cuts down on network traffic in general. If you are interested here is the link to show you how... http://malektips.com/xp-network-disable-netbios-tcpip.html
In general these are the only two setting changes on a Win XP client that I have actually seen consistently increase performance. I have tried many others but in a LAN setting none have consistently increased my performance. Along with that I want to note that overall I found that the Win XP file copy engine is only capable of 60-70 MB/sec max for file copies to/from network drives in a best case scenario. So far the only program I have found that gives better performance in Win XP is one I created. If you want to know more about that program check out these threads... http://forums.smallnetbuilder.com/showthread.php?t=1685&page=2 and http://forums.smallnetbuilder.com/showthread.php?t=1762
Vista SP1 as the client:
In my experience Vista SP1 does not need any changes to get high file copy speeds to/from networked drives right out of the box. That is provided no audio or video media is being played during the file copy. By design Vista throttles network bandwidth when audio/video media is being played to ensure the highest quality playback. If you still want high speed file copies while audio or video media is being played see post #6 in this thread... http://forums.smallnetbuilder.com/showthread.php?t=899
Linux/Ubuntu as the client:
I have not used Linux as a desktop machine very much so I don't have any tips to give for this one. Maybe others can chime in.
Server settings:
Windows XP Home/PRO as the server:
Use a large system cache setting for the best performance. See post #8 from this link... http://forums.smallnetbuilder.com/showthread.php?t=736
Along with that changing the registry setting HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\size to 3 (decimal) will help maximize performance in a file server role.
As mentioned above disabling NetBIOS can increase performance at the cost of convenience for all Windows versions from 2000 on.
(For SP2 only I think) One other thing that might improve performance is to disable the Windows firewall/ICS service. Here is the Microsoft KB describing how to do this and what the problem is. http://support.microsoft.com/kb/842264
Vista SP1 as the server:
I would recommend making the change I outlined for "Vista SP1 as the client".
Also I have found that if I did not change the Lanmanserver Size setting in Vista I would get a connection lost error on my client when trying to transfer large files. So I recommend changing HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\size to 3 (decimal) on Vista as well when used as the server.
Ubuntu Server as the server:
From my testing I have found that Ubuntu Server gives good SAMBA performance right out of the box. Maybe some others can chime in if they know of some settings that can help network/samba performance.
FreeNAS, Openfiler, and most other linux OSes as the server:
In my testing with FreeNAS and Openfiler I found that at the bare minimum the SAMBA send and receive buffer settings need to be changed to get high speed file transfers. The default settings are too low. "socket options = SO_RCVBUF=65536 SO_SNDBUF=65536" needs to be added to your smb.conf file. FreeNAS allows these settings to be set in the web interface for the CIFS setup.
Other tips:
I wanted to also add a few more things that should be done on any client or server... Ensure that network drivers are up to date on all machines. Make sure to enable all offloading functions your network card is capable of. Also if available increase the transmit and receive buffers of the network card. Turn on interrupt moderation/coalescing if available. I would also stick with standard sized frames. Or at least get things up and running then test with both to see if there is a difference in performance. So far I have not seen a difference with my computers here at home. Jumbo frames are not part of the IEEE 802 standard and can cause problems as not all devices can deal with them. http://en.wikipedia.org/wiki/Jumbo_frame
I am by no means an expert so feel free to ask questions, correct anything that looks wrong, or post some of your own tips.
00Roush
Lets start with settings on client computers.
Windows XP Home/PRO as the client:
Using a large system cache can help increase performance on some clients. See post #8 in the following link for information on how to set this. http://forums.smallnetbuilder.com/showthread.php?t=736
Turning off NetBIOS can also increase performance a little bit (1% or so) but you no longer can access shares by using names when it is turned off. To access shares with NetBIOS off you need to know the IP address of the computer you are trying to connect to. For example you would need to use \\192.168.0.10 to access a SMB share instead of just typing \\computer. Turning this off also cuts down on network traffic in general. If you are interested here is the link to show you how... http://malektips.com/xp-network-disable-netbios-tcpip.html
In general these are the only two setting changes on a Win XP client that I have actually seen consistently increase performance. I have tried many others but in a LAN setting none have consistently increased my performance. Along with that I want to note that overall I found that the Win XP file copy engine is only capable of 60-70 MB/sec max for file copies to/from network drives in a best case scenario. So far the only program I have found that gives better performance in Win XP is one I created. If you want to know more about that program check out these threads... http://forums.smallnetbuilder.com/showthread.php?t=1685&page=2 and http://forums.smallnetbuilder.com/showthread.php?t=1762
Vista SP1 as the client:
In my experience Vista SP1 does not need any changes to get high file copy speeds to/from networked drives right out of the box. That is provided no audio or video media is being played during the file copy. By design Vista throttles network bandwidth when audio/video media is being played to ensure the highest quality playback. If you still want high speed file copies while audio or video media is being played see post #6 in this thread... http://forums.smallnetbuilder.com/showthread.php?t=899
Linux/Ubuntu as the client:
I have not used Linux as a desktop machine very much so I don't have any tips to give for this one. Maybe others can chime in.
Server settings:
Windows XP Home/PRO as the server:
Use a large system cache setting for the best performance. See post #8 from this link... http://forums.smallnetbuilder.com/showthread.php?t=736
Along with that changing the registry setting HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\size to 3 (decimal) will help maximize performance in a file server role.
As mentioned above disabling NetBIOS can increase performance at the cost of convenience for all Windows versions from 2000 on.
(For SP2 only I think) One other thing that might improve performance is to disable the Windows firewall/ICS service. Here is the Microsoft KB describing how to do this and what the problem is. http://support.microsoft.com/kb/842264
Vista SP1 as the server:
I would recommend making the change I outlined for "Vista SP1 as the client".
Also I have found that if I did not change the Lanmanserver Size setting in Vista I would get a connection lost error on my client when trying to transfer large files. So I recommend changing HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\size to 3 (decimal) on Vista as well when used as the server.
Ubuntu Server as the server:
From my testing I have found that Ubuntu Server gives good SAMBA performance right out of the box. Maybe some others can chime in if they know of some settings that can help network/samba performance.
FreeNAS, Openfiler, and most other linux OSes as the server:
In my testing with FreeNAS and Openfiler I found that at the bare minimum the SAMBA send and receive buffer settings need to be changed to get high speed file transfers. The default settings are too low. "socket options = SO_RCVBUF=65536 SO_SNDBUF=65536" needs to be added to your smb.conf file. FreeNAS allows these settings to be set in the web interface for the CIFS setup.
Other tips:
I wanted to also add a few more things that should be done on any client or server... Ensure that network drivers are up to date on all machines. Make sure to enable all offloading functions your network card is capable of. Also if available increase the transmit and receive buffers of the network card. Turn on interrupt moderation/coalescing if available. I would also stick with standard sized frames. Or at least get things up and running then test with both to see if there is a difference in performance. So far I have not seen a difference with my computers here at home. Jumbo frames are not part of the IEEE 802 standard and can cause problems as not all devices can deal with them. http://en.wikipedia.org/wiki/Jumbo_frame
I am by no means an expert so feel free to ask questions, correct anything that looks wrong, or post some of your own tips.
00Roush
Last edited: