n9nu
Extraordinary Member
- Joined
- Feb 7, 2008
- Messages
- 26
- Thread Author
-
- #1
I don't know if I mentioned these here in the past, but I will list them so you guys can see if it makes a difference for you as well. These commands should be implemented in the Administrators Command Prompt (Terminal) as the Administrator. These commnands pertain to throughput between computers (LAN) as well as to decreasing browser response / page load time.
I was experiencing poor performance between my FreeNAS box and this Vista SP1 machine for the longest time and finally realized I can tweak Vista's TCP Window Tuning despite it being "pre-set" for optimum performance. Your gain or loss will vary of course, but hey...what the heck...it's easy to switch between them. These commands will allow the Receive Window (RWIN) to dynamicaly change my manually setting it to expand by "x" factor. Option 1 below is "normal" or "autotuning on" which is the default for most Vista versions.
Despite Vista SP1, there are still some bottlenecks with regards to throughput and response time. I have SP2 installed and I still use the manual method #3 below with enhanced results. That is with a fresh slipstreamed install. Anyways....see what you come up with.
At the Adminitstators Command Prompt, enter one of the following options (1, 2, 3 or 4 )
1. netsh interface tcp global autotuninglevel=normal <---default setting for most Vista versions.
2. netsh interface tcp global autotuninglevel=highlyrestricted <---- allows RWIN to expand conservatively
3. netsh interface tcp global autotuninglevel=restricted <----what I use ~ 40% increase in thoughput for me. Allows for greater RWIN expansion.
4. netsh interface tcp global autotuninglevel=disabled <---- Reported to increase thoughput when using P2P Networking and when using downloading agents (IDM, IDA, DAP, etc).
5. netsh interface tcp global autotuninglevel=experimental <----- just what it says. Allows for extremely large, extremely high bandwidth connections (DS3 or >) - May decrease performance with lower connections. Not Recommended.
I created a small batch (.bat) file with a menu to switch between them so I could get a consitent benchmarks to my liking. You have to reboot your machine between each change.
The above commands won't screw up your system in anyway other than slowing or speeding up your file transfers / browser surfing sessions, so experiment. You might get lucky and notice a substantial INTRANET file transfer gain.
Below are some other settings that can have a substantial impact on performance. Most of these are pre-set to their optimized settings, so I will list those for information purposes.
CTCP (Compound TCP)
Traditional algorithims that are used to decrease or "handle" network congestion are not necessarily optimized to deal with the high-speed INET connections that are available to some of us today. Thus, CTCP can deal with these larger connections by closely monitoring delay times and packet loss to minimize congestion while increasing thoughput by handling the RWIN factor in a more aggressive way. This option in Server 2008 is turned ON. In Vista, it is OFF by default. Turning this ON could boost your performace substantially. This newer way of handling congestion by different algorithim methods has boosted my throughput on 2 of my machines alone. I suggest everyone try this one. This will work for all modern "broadband" connections. The bigger the pipe, the better.
From the Command Prompt, issue the following command(s):
netsh interface tcp set global congestionprovider=ctcp <---- Suggested setting.
netsh interface tcp set global congestionprovider=none <---- Default setting for Vista netsh interface tcp set global congestionprovider=default <---- restores system default
I have had great luck with this switch and I am sure some of you will also have good luck as well.
MTU (Maximum Transmission Unit) Default network value for Ethernet is 1500
Two words on changing the MTU in Vista. Don't bother. By default, Vista uses the maximum size for the basic network grid. The common misconception with this command is that by raising it to a higher value (e.g. 9014) you will allow for a larger packet Frame to be sent. Here is the truth. For day to day downloading, surfing, etc., 1500 is the sweet spot. There are some exceptions. Most notibly, peer to peer (direct PC to PC via NIC) connections. In ths case, the MTU can be raised and will allow for a higher rate. I have one of these connections from my FreeNAS server box and one of my Vista SP2 boxes. Other than a direct connection like that, raising the MTU will yeild you next to no increase in performance/thoughput. The most important option is the Receive Window (RWIN).
ECN (Explicit Congestion Notification)
This option allows for a different communication method to deal with network congestion. It dynamicaly lowers the transfer rate for certain "retry" packets thus preventing packet loss as much as possible. ECN is disabled in Vista by default and should remain that way UNLESS your router does not support ECN. All newer routers do...so only the very old ones could have a problem with this option be disabled and enabling it might be your best bet.
To check whether your router supports ECN, you can use the Microsoft Link Removed. The results will be displayed under "Traffic Congestion Test" in the detailed report.
Only if you need to change this option, do so by issuing the following command via the Command Prompt as follows:
netsh interface tcp set global ecncapability=enabled <---Only for those who's routers fail the ECN test from above. All other users (99% of us), may disregard this option. Period.
There are several others (RSS, TCP Chimney Offload, etc) that are available, but Vista has them set to their optimum values. For most part, the above material is about all you need to optimize your connection if you are having problems or want to squeeze more out of your connection and hardware. A TCP Analyizer will help when determining your max MTU if you need to setup a direct PC to PC static route.
The last option is for on-line gaming. The setting below WILL reduce latency (by 1/2 in some games) when disabled. This is only for a certain hand full of games. World Of Warcraft IS one that will take advantage of this. The Nagle Alrorithm can be disabled to allow for faster packet transfers by removing the delay times between transfers. This only works for very small packets..thus is perfect for online games. The downside is that it will most likely reduce thoughput overall. This should not be a big deal when playing games on-line as latency is much more important than a big pipe. I do not know which games, other than WOW, that take advantage of this, so I will not go into detail on how to modify the settings unless someone specifically requests it. This mod involves editing the registry and changing/adding about 3-4 options. You may PM me or request it via a Reply here.
I hope some of these commands help at least 1 person out there. It helped me and I have a 55-Mbit connection here...and I receive email from others that have benefited as well, so I know these work for some.
Tim
Digital Audio Productions
I was experiencing poor performance between my FreeNAS box and this Vista SP1 machine for the longest time and finally realized I can tweak Vista's TCP Window Tuning despite it being "pre-set" for optimum performance. Your gain or loss will vary of course, but hey...what the heck...it's easy to switch between them. These commands will allow the Receive Window (RWIN) to dynamicaly change my manually setting it to expand by "x" factor. Option 1 below is "normal" or "autotuning on" which is the default for most Vista versions.
Despite Vista SP1, there are still some bottlenecks with regards to throughput and response time. I have SP2 installed and I still use the manual method #3 below with enhanced results. That is with a fresh slipstreamed install. Anyways....see what you come up with.
At the Adminitstators Command Prompt, enter one of the following options (1, 2, 3 or 4 )
1. netsh interface tcp global autotuninglevel=normal <---default setting for most Vista versions.

2. netsh interface tcp global autotuninglevel=highlyrestricted <---- allows RWIN to expand conservatively

3. netsh interface tcp global autotuninglevel=restricted <----what I use ~ 40% increase in thoughput for me. Allows for greater RWIN expansion.

4. netsh interface tcp global autotuninglevel=disabled <---- Reported to increase thoughput when using P2P Networking and when using downloading agents (IDM, IDA, DAP, etc).

5. netsh interface tcp global autotuninglevel=experimental <----- just what it says. Allows for extremely large, extremely high bandwidth connections (DS3 or >) - May decrease performance with lower connections. Not Recommended.
I created a small batch (.bat) file with a menu to switch between them so I could get a consitent benchmarks to my liking. You have to reboot your machine between each change.
The above commands won't screw up your system in anyway other than slowing or speeding up your file transfers / browser surfing sessions, so experiment. You might get lucky and notice a substantial INTRANET file transfer gain.
Below are some other settings that can have a substantial impact on performance. Most of these are pre-set to their optimized settings, so I will list those for information purposes.
CTCP (Compound TCP)
Traditional algorithims that are used to decrease or "handle" network congestion are not necessarily optimized to deal with the high-speed INET connections that are available to some of us today. Thus, CTCP can deal with these larger connections by closely monitoring delay times and packet loss to minimize congestion while increasing thoughput by handling the RWIN factor in a more aggressive way. This option in Server 2008 is turned ON. In Vista, it is OFF by default. Turning this ON could boost your performace substantially. This newer way of handling congestion by different algorithim methods has boosted my throughput on 2 of my machines alone. I suggest everyone try this one. This will work for all modern "broadband" connections. The bigger the pipe, the better.
From the Command Prompt, issue the following command(s):
netsh interface tcp set global congestionprovider=ctcp <---- Suggested setting.
netsh interface tcp set global congestionprovider=none <---- Default setting for Vista netsh interface tcp set global congestionprovider=default <---- restores system default
I have had great luck with this switch and I am sure some of you will also have good luck as well.
MTU (Maximum Transmission Unit) Default network value for Ethernet is 1500
Two words on changing the MTU in Vista. Don't bother. By default, Vista uses the maximum size for the basic network grid. The common misconception with this command is that by raising it to a higher value (e.g. 9014) you will allow for a larger packet Frame to be sent. Here is the truth. For day to day downloading, surfing, etc., 1500 is the sweet spot. There are some exceptions. Most notibly, peer to peer (direct PC to PC via NIC) connections. In ths case, the MTU can be raised and will allow for a higher rate. I have one of these connections from my FreeNAS server box and one of my Vista SP2 boxes. Other than a direct connection like that, raising the MTU will yeild you next to no increase in performance/thoughput. The most important option is the Receive Window (RWIN).
ECN (Explicit Congestion Notification)
This option allows for a different communication method to deal with network congestion. It dynamicaly lowers the transfer rate for certain "retry" packets thus preventing packet loss as much as possible. ECN is disabled in Vista by default and should remain that way UNLESS your router does not support ECN. All newer routers do...so only the very old ones could have a problem with this option be disabled and enabling it might be your best bet.
To check whether your router supports ECN, you can use the Microsoft Link Removed. The results will be displayed under "Traffic Congestion Test" in the detailed report.
Only if you need to change this option, do so by issuing the following command via the Command Prompt as follows:
netsh interface tcp set global ecncapability=enabled <---Only for those who's routers fail the ECN test from above. All other users (99% of us), may disregard this option. Period.
There are several others (RSS, TCP Chimney Offload, etc) that are available, but Vista has them set to their optimum values. For most part, the above material is about all you need to optimize your connection if you are having problems or want to squeeze more out of your connection and hardware. A TCP Analyizer will help when determining your max MTU if you need to setup a direct PC to PC static route.
The last option is for on-line gaming. The setting below WILL reduce latency (by 1/2 in some games) when disabled. This is only for a certain hand full of games. World Of Warcraft IS one that will take advantage of this. The Nagle Alrorithm can be disabled to allow for faster packet transfers by removing the delay times between transfers. This only works for very small packets..thus is perfect for online games. The downside is that it will most likely reduce thoughput overall. This should not be a big deal when playing games on-line as latency is much more important than a big pipe. I do not know which games, other than WOW, that take advantage of this, so I will not go into detail on how to modify the settings unless someone specifically requests it. This mod involves editing the registry and changing/adding about 3-4 options. You may PM me or request it via a Reply here.
I hope some of these commands help at least 1 person out there. It helped me and I have a 55-Mbit connection here...and I receive email from others that have benefited as well, so I know these work for some.
Tim
Digital Audio Productions