4

I'm wondering what network / tcp tuning should be done in Windows 7 to ensure best performance (yet without reasonable risk of causing issues). Here's what I have so far (the below commands get run in an elevated command prompt):

  1. Disable heuristics which might interfere with receive window scaling settings

    netsh interface tcp set heuristics disabled

  2. Set receive window autotuning to normal (this made a HUGE difference in throughput when I set it - over 3x improvement in throughput to a server about 1500mi away)

    netsh interface tcp set global autotuninglevel=normal

  3. Set congestion control to compound TCP (CTCP)

    netsh interface tcp set global congestionprovider=ctcp

As a tip to anyone unfamiliar with this, you can see your current settings using the following command:

netsh interface tcp show global
5
  • 2
    What problem are you trying to solve?
    – Jim G.
    Sep 24, 2015 at 18:10
  • To be able to get maximum throughput, limited only by the connection speed provided by our ISP (or of course limited by congestion or loss along the route of course). For example when I didn't have receive window autotuning enabled, we could only get about 1MB/s to the server 1500mi away, but after enabling it we were getting over 3MB/s (though that's still not utilizing our maximum available bandwidth). Thx
    – sa289
    Sep 24, 2015 at 18:13
  • @JimG.Forgot to "@" you in my comment reply.
    – sa289
    Sep 24, 2015 at 21:28
  • "netsh interface tcp set global autotuninglevel=normal" is the default setting on all my W7 pc's.
    – Moab
    Sep 24, 2015 at 23:17
  • Tweaking the settings is only ever necessary if you’re interested in stable and low latency.
    – Daniel B
    Sep 28, 2015 at 16:45

2 Answers 2

1
+50

Most of the settings you have already found with netsh interface tcp show global, so you do not need us to explain these settings and can try them on your own. I would just remark that some of these settings depend on variables such as the hardware of the sending and receiving computers and that of the routers that participate in the message flow, so do not always give identical results. Some parameters may be improved dynamically by Windows at run time.

One setting you have not listed is the MTU. Reducing it for example to 1492 may improve performance, since the default value of 1500 may under some configurations entail splitting the message into two messages. See these commands :

netsh int ipv4 show subinterface
netsh int ipv4 set subinterface "Name of NIC" mtu=1492 store=persistent

Sometimes the opposite helps when enabling Jumbo Frames :

netsh int ipv4 set subint "Name of NIC" mtu=9000 store=persistent

But no setting works to improve the speed in all cases and under all configurations. The Windows defaults are set to the most common case, which of course may not be the same as yours. You will have to experiment to see which parameters work best for your environment.

3
  • Thanks. It looks like the MTU on my desktop is 1300 and I know on our Cisco router it's 1380.
    – sa289
    Sep 28, 2015 at 19:32
  • Wrong MTU size can result a big issues with the internet connection. If you do not have any problems so far i would not toutch that setting. Sep 29, 2015 at 10:34
  • MTU changes can always be undone. You could try Jumbo Frames, or edging it up to 1380 (the later for only minimal gain).
    – harrymc
    Sep 29, 2015 at 11:04
1

You never said what your ISP speeds are for either location, so it's hard to say how fast it can go, but there are several factors to double check.

  1. Hardware - Firewalls, routers, and modems can affect the speed. Find a baseline by connecting directly to the modem (or as close as possible) and see how fast it goes. What is between your computer and the other computer you are trying to access?
  2. Software - AV, firewalls, or even windows can slow it down. You've done some tweaking in windows, but have you tested anything else like running in safe mode or reducing how much software could affect the connection/bandwidth?
  3. Connection between both sites - How are you accessing the other site? VPN, FTP, http, etc? If it's a VPN, is it from hardware or software on the computer?
  4. Testing - How are you testing the speed? It sounds like you move/download a large file and check how fast it goes, but it's good to double check.

That's just some basic information, but it is helpful to know how much and what you have tried. Without it, all i can assume is you think it's windows, then come to find out your network is slowing it down or your AV software is. I would find the bottleneck first, otherwise you may waste hours making tweaks that doesn't fix the issue you are having.

Your connection may be fine, but that's why i'm asking those questions and getting that information. So i'll edit my answer if i get more information, but right now i'm thinking it has something to do with how you are connecting to the other site or something between both computers.

2
  • Yeah, it certainly could be other factors, but one piece is I want to make sure the Windows computers are all optimally tuned, so whether I do that first or later, I think it still makes sense to do it (especially since that one change I made made a huge difference). I'm hoping if there are any tuning settings I missed that I can find out from this question, and then I can just apply those and if we're still not getting the expected speed, then know that it might be one of the other items you listed. Thx
    – sa289
    Sep 29, 2015 at 18:10
  • Sure, but unfortunately there aren't many options for tweaking windows to get a better connection. The basics to get it to work, like permissions and network settings, are about the only thing you need to worry about like that. The 1 change is a big difference, but it still looks like you are trying to micromanage windows more than you have to. Trying not to make it sound like what you are doing is useless, but i would rather get the speed up first and tweak it after to get any extra speed out of my connection.
    – dakre18
    Sep 29, 2015 at 19:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .