Improving Network Performance in Windows Server and Client (Part 1)

by [Published on 17 June 2014 / Last Updated on 17 June 2014]

This two-part series looks at how to improve the performance of your Windows based network.

If you would like to read the next part of this article series please go to Improving Network Performance in Windows Server and Client (Part 2).

Introduction

Computer users (and admins) are an impatient bunch. We don’t want to wait around for anything. If it takes several seconds for a page to load, a file to download, or a message to go through, we get anxious. All those lost seconds add up to lost minutes, lost hours, lost days – and in today’s business world, no one can afford that.

The evolution of network performance capabilities

We’ve come a long way since the early days of computer networking and communications. The first modems ran at 75 to 300 bits per second and ten years ago, a 1.5mbps T-1 line seemed blazing fast. Today we have Internet connections ranging all the way up to a gigabit per second (for those who aren’t mathematically inclined, that’s 1,073,741,824 bits per second).

The original implementation of Ethernet, which became available in the 1980s, had a data rate of 10mbps – and that was a big improvement over the first token ring networks that ran at 4mbps. ARCNET, another early local networking technology, was even slower at 2.5mbps. Contrast that with the 100gbps Ethernet that exists today, with 1gbps being the standard and 10gbps not uncommon in business deployments.

Network performance, however, is dependent on more than just the raw bandwidth of the connection. In the field of electronic communications, performance measurements have traditionally been taken to include the following:

  • Bandwidth: the maximum bits-per-second rate of which the connection is capable, which is the label we commonly apply to connectivity speeds.
  • Throughput: the actual rate at which data is transferred, which can be and often is considerably lower than the bandwidth measurement.
  • Latency: the delay between sending and receipt by the user at the destination that is caused by distance/travel time (thus satellite communications always suffer from high latency due to the travel from earth to orbit and back). Latency is also increased by the time required to process the signals at intermediary stations along the route.

Performance is also affected by the error rate of the transmission. When the bits arrive at the destination and are corrupted, they have to be re-sent, and this slows down the overall performance. Errors can be caused by interference such as EMI, crosstalk from nearby cables, signal distortion, random noise, and synchronization problems, etc.

Actual vs. perceived performance

The performance factors mentioned above are related to the signal itself, the cables (or airwaves) over which the signals travel, and the hardware directly involved in transmitting and receiving (and in the case of intermediary nodes, retransmitting or repeating) the signal. There are a number of ways to increase performance through hardware modifications, such as adding more network cards to a server to distribute the load of network traffic, replacing any hubs with switches or replacing simple switches with more intelligent ones, upgrading cabling, better shielding cables from interference, and so forth.

The operating system and application software have nothing to do with this. However, the perceived performance of the network can be significantly affected by what happens to the bits of data before they leave the sending computer and/or after they arrive at the destination computer. Thus software can play a big role in increasing perceived network performance.

Pinpointing the problem

When network performance seems slower than it should, the first step is to determine where the problem lies. Is it really the network that’s slow, or a particular computer system? If the problem is consistent across many computers, you can move on to determining whether the slowdown is occurring within the local network, or is it a problem with Internet connectivity? In other words, are communications between internal computers slow or just Internet-based transmissions? If the Internet is the culprit, then you must determine whether the problem is with your on-premises equipment, with the Internet provider or with the particular sites or services to which you’re connecting?

Obviously the source of the problem will dictate whether it’s within your purview to do something about it and if so, what you can do about it. There are diagnostic tools that you can use to track down problems such as latency on the wide area connection or a problem with an internal server. A commercial or free network analyzer can help you to accurately diagnose the cause of the slowdown.

In some cases, your organization’s usage load might just be too much for the amount of bandwidth you have. That means you need to consider upgrading the internal network infrastructure or purchasing a higher bandwidth plan from your ISP (or even both). In many cases, though, you have plenty of internal and external bandwidth and adding more would just be a waste of money and wouldn’t address the real problems.

Software-based performance enhancements

Many of the tweaks that you can make to increase perceived network performance in Windows systems are applicable across all versions of the operating systems and platforms; others are dependent on technologies that are built into the newer OS. We’ll look at the more broad based performance enhancements first.

Remove unneeded network protocols

Windows computers support a number of different network protocols and many of these might have been enabled somewhere along the way, even though you never used them or used them at one time and don’t anymore. Yet those unneeded protocols are using up system resources and generating useless network traffic, and thus slowing down the performance of the protocols that you do use.

Removing the extra protocols that you don’t need will minimize the number of network bindings that have to be negotiated, reduce network traffic and free up system resources. Best of all, it’s simple to do.

Just access the adapter settings for each of your installed network interface cards through the Change adapter settings option (Network and Sharing Center | Tasks). Right click the connection you want to modify and select Properties, scroll down to see which network protocols are enabled and uncheck the boxes for those you don’t need or highlight and click Uninstall to uninstall them completely.

Note that this is less likely to be a problem with newer operating systems than with older ones that come with a wide variety of formerly popular protocols installed, such as IPX/SPX, NetBEUI and AppleTalk, that are no longer commonly used. Don’t disable the following (unless you know what you’re doing and understand that it will shut down functionality of your network):

  • Internet Protocol (TCP/IP)
  • Client for Microsoft Networks
  • File and Printer Sharing for Microsoft Networks

Tweak network adapter driver software

Perceived performance of the network adapters can be increased by optimizing the drivers for your NICs. Make sure that the driver software is up to date by checking the vendor’s site for the latest version. You can also tweak the drivers’ settings to increase the amount of memory that can be used for both incoming and outgoing packet buffering, as well as the settings for the buffer counts. A larger buffer space will help to minimize performance slowdowns from sudden bursts of network traffic that cause congestion.

Here’s how you do it: In the Change adapter settings option in the Network and Sharing Center, right click the connection that you want to modify and select Properties, then click the Network tab, and then Configure. Now click the Advanced tab. This will display the properties that you can tweak. Some that can help with performance include:

  • If performance is more important than saving energy, you can configure the power management feature from turning off the NIC in order to save power. Although turning off the NIC does save energy, it takes time to start up again and that will slow down performance. This is particular true on servers.
  • You should make sure that the network speed, duplex and flow control options are set so that they match the switch that the system is connected to. The default setting may be “Auto,” which would seem like the most reasonable choice, but this can result in performance hits when auto-synchronization takes place.
  • If your server has plenty of RAM, you can improve perceived network performance by setting the Max Coalesce Buffers, Max Transmit/Send Descriptors and Buffers and Max Receive Buffers settings to the highest possible value.
  • Enable network offload features (assuming your NIC supports them) to reduce the load on the CPU, which will improve the overall system performance and perceived network performance.
  • Disable the Wake On LAN feature.

Summary

In this, the first part of a two-part series on how to improve the performance of your Windows based network, we discussed what network performance really means, the difference between actual and perceived performance and some of the possible causes of slow network performance, as well as a few tips for tweaking Windows software settings to help increase network performance. In part 2, we’re going to dig a little deeper into configuration changes, third party tools you can use to enhance performance and technologies included in the Windows operating systems (including new ones in the latest versions of which you might not be aware) that are designed to help you optimize network performance. See you then. - Deb

If you would like to read the next part of this article series please go to Improving Network Performance in Windows Server and Client (Part 2).

Featured Links