Tech Line

Bottleneck Battle

When you suspect a performance problem is related to a network bottleneck, use this simple tool to verify your suspicions.

Chris: I have often found myself having to deal with customers with slow networks that believe their networks are fine. Just last week I was at a site and the customer was insistent that slow performance was related to a software bug in the product I was installing. Is there an easy way to definitively identify a network bottleneck so that both the engineer and customer can be confident in the source of the problem?

Jim: At first I was hesitant to answer your question. Finger pointing has been a long standing tradition in IT, and I wasn’t sure that I wanted to do anything to upset that delicate balance. Many of my friends like to "blame the other guy" when they find themselves in a jam. This gives them a few hours (or sometimes even days!) to solve a problem while the customer verifies that it isn’t with another vendor.

Now before all of you jump down my throat, I am not condoning this behavior! While blaming the other guy could be used as a diversion tactic, most administrators are often very confident in their abilities and, as a result, find in hard to believe that a performance problem exists on their network. When you find yourself in this situation and are looking to narrow down the cause of a problem, I have had a lot of success using the open source tool Netperf, which was developed by HP engineer Rick Jones. Netperf is a light-weight vendor neutral tool that will give you instantaneous network throughput between two points.

Tech Help—Just An
E-Mail Away

Got a Windows, Exchange or virtualization question or need troubleshooting help? Or maybe you want a better explanation than provided in the manuals? Describe your dilemma in an e-mail to the editors at mailto:[email protected]; the best questions get answered in this column and garner the questioner with a nifty baseball-style cap.

When you send your questions, please include your full first and last name, location, certifications (if any) with your message. (If you prefer to remain anonymous, specify this in your message, but submit the requested information for verification purposes.)

The latest version of Netperf can be downloaded from the official Netperf site. Note that the download site will provide access to the Netperf source code. You will need to compile it in order to run it. Netperf can be successfully compiled to run on Windows, Unix or Linux. If you’re not in a compiling kind of mood, you can download a compiled copy of the netperf tools from my Web site.

Run netserver.exe on one system and netclient.exe on the other system to arrive at a throughput value between the two systems.

By default, when you run Netserver, it uses port 12865. With the –p switch, you can specify a different port for the command to use. Once executed, Netserver will continue to run until a client connects to it.

While there are numerous options that accompany the Netclient command, for performing throughput tests, you only need to be concerned with –H and possibly –p if testing throughput between two remote sites through a firewall. If you’re interested in the numerous other switches available with Netperf, go here.

Once you have the netserver.exe file on one system and the netclient.exe file on the second system, you would perform these steps to test throughput:

1. On the first system, access the command prompt and run netserver.exe (you must run the command from the folder where it resides).

2. From the second system, run netclient.exe –H from the command prompt.

Wait a few seconds and you will see the throughput information displayed on the system that ran Netclient. You will also see the netserver command execution automatically terminate on the first system.

Here is a sample of the command and resultant output from running Netclient:

G:\Netperf>netclient -H
Recv   Send   Send
Socket Socket Message Elapsed
Size   Size   Size    Time     Throughput
bytes  bytes  bytes   secs.    10^6bits/sec

8192     64512    64512     10.00        97.30

In my example, I first went to the server named and ran the command netserver.exe. I then went to another system and ran "netclient –H" The resultant throughput between the two systems was 97.3 Mbps. This demonstrated that the 100Mbps LAN connecting the two systems was running fine. A low throughput value would identify a network bottleneck. At that point, you would need to go through the usual suspects (NIC drivers, duplex mode, speed, switch settings, etc.) to determine the root cause of the problem.

If you are having to install network software on another organization’s network, Netperf can quickly give you a throughput measurement that will allow you to either identify or rule out the network as being problem. I like Netperf because I can run in on nearly any OS. I’m sure that many of you have a favorite network performance testing tool. If so, please share the love and post information about the tool as a comment to this column.

About the Author

Chris Wolf is a Microsoft MVP for Windows --Virtual Machine and is a MCSE, MCT, and CCNA. He's a Senior Analyst for Burton Group who specializes in the areas of virtualization solutions, high availability, storage and enterprise management. Chris is the author of Virtualization: From the Desktop to the Enterprise (Apress), Troubleshooting Microsoft Technologies (Addison Wesley), and a contributor to the Windows Server 2003 Deployment Kit (Microsoft Press).learningstore-20/">Troubleshooting Microsoft Technologies (Addison Wesley) and a contributor to the Windows Server 2003 Deployment Kit (Microsoft Press).

comments powered by Disqus
Most   Popular