Improve Performance on a Windows Server 2003 File Server

How can I improve performance on a Windows Server 2003 file server?

Windows Server 2003 is pre-configured with some settings that might cause performance overhead.
Caution: Although these configurations changes were tested by myself and other users, modifying your settings without testing them first might cause problems on your network.
These settings were tested with only one server in the network. I have no knowledge about the effect of these settings on a multiple-server network.
Make sure you have a full and working backup of the system state and the registry of all the servers that you intend to tweak BEFORE you actually perform the changes.

Windows 2003 built 3790 (RTM) that is only used for file server in the network:

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\MemoryManagement\

Edit (or create if non-existent) an entry of PagedPoolSize and set the value to 192,000,000.
Windows normally calculates the paged and non paged pool memory sizes using complex algorithms based on physical memory size. These settings allow you to override and manually specify values.

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\

Edit (or create if non-existent) an entry of NtfsDisable8dot3NameCreation and set the value to 1.
You can increase NTFS performance if you disable 8.3 name creations (Some 16bit programs may have trouble finding Long File Names. Don’t set this option if you wish to install Norton NT Utilities).

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\

Edit (or create if non-existent) an entry of Disablelastaccess and set the value to 1.
This will disable the last access information written to each file as it is accessed. The result is faster hard disk file read-access.

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\NumTcbTablePartitions

Edit (or create if non-existent) an entry of NumTcbTablePartitions and set the value to 8.
The value of this entry can be changed to partition the TCP control block (TCB) table to avoid contention. The default is 0x4; the value should be a power of two, that is, 2, 4, 8, 16, 32, and so on. On multiprocessor systems, change the number of partitions to four times the number of processors in your system.

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\

Edit (or create if non-existent) an entry of TcpAckFrequency and set the value to 13.
Frequency of TCP ACK message that send to the other side.

Client Operating System Tunings – Windows XP with Service Pack 1:

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\

Edit (or create if non-existent) an entry of TcpAckFrequency and set the value to 13.
Frequency of TCP ACK message that send to the other side.

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters\

Edit (or create if non-existent) an entry of DisableByteRangeLockingOnReadOnlyFiles and set the value to 1.
This change allow the client to work faster with SAMBA server (you don’t need it to connection with Windows Server that isn’t SAMBA):
http://h71000.www7.hp.com/doc/tcpip51/documentation/v51_relnotes_002.htmllink out ico

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters\

Edit (or create if non-existent) an entry of DormantFileLimit and set the value to 100.

Determines how many files on each share can remain open in the redirector’s cache after an application has closed them. If the number of open, cached files on a share exceeds the value of this entry, the system begins to close the cached files. The Windows redirector keeps files open in the cache after an application has closed the file. This entry prevents cached files from occupying the limited number of places available for open files. By default, LAN Manager servers permit only 60 files from remote clients and 50 files from each client workstation to remain open.

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters\

Edit (or create if non-existent) an entry of ScavengerTimeLimit and set the value to 100.
http://www.cnaf.infn.it/~ferrari/infn-grid-wp5/task-dg/task2/scavenger-tests-cern.pdflink out ico
After you finish the changes on the server/client please reboot your computer to allow this changes to affect the system.
If for some reason you want to restore your original configuration, then, before you log in, use “Last Known Good” configurationlink out ico

References

http://tailorednews.com/MicrosoftSP/NI/articles/tuningasp.doclink out ico
http://www.mindcraft.com/whitepapers/sm461ad/sm461ad-p2.pdflink out ico
http://www.nwfusion.com/reviews/2000/0124revtuning.htmllink out ico
http://www.synapse.de/regcheck/ger/registry/win-2000/root/hkey_local_machine/system/currentcontrolset/services/tcpip/parameters/link out ico
http://www.specbench.org/osg/web99/results/res2002q1/web99-20020215-00178.htmllink out ico
http://www.microsoft.com/windows2000/docs/tcpip2000.doclink out ico
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/windows2000serv/reskit/serverop/part2/sopch09.asplink out ico
http://www.siesystems.com/w2k_registry_tcp.htmlink out ico
http://nms.lcs.mit.edu/talks/tcp-asym/link out ico