Sign up for our newsletter.

I agree to this site's Privacy Policy.

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; 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

Reader Comments:

Wed, Jul 17, 2013 Blazer New Zealand

re setting socket size. try this as an example (note the double --): netperf -H -fm -l10 -- -m262144,262144 -M262144,262144 -s65536,65536 -S65536,65536

Tue, May 22, 2012 Mark Hudson, FL

Thanks for posting this article and the link to the compiled versions on your website!

Tue, Aug 17, 2010 Mel Chandler Santa Ana, CA

iperf is similiar tool with lots of options to test bandwidth. You can test unidirectional, or bidirectional and/or in parallel. You can also do TCP or UDP streams (useful if you want to know how streaming media would work).

Tue, Aug 19, 2008 hemanth unitedm kingdom

well it really helped me to get netperf work on the windows.... thanks a lot.....

Thu, Jun 21, 2007 yousurf Anonymous

How can we change the value of the SocketSize? because it's set to 8192 bytes. thank you in adavance.

Tue, Oct 17, 2006 Anonymous Anonymous

Great tool for on the job

Fri, Apr 14, 2006 Fast Eddie Germany

Great article but I was unable to find the compiled version on the web site.

Tue, Apr 11, 2006 Anonymous Anonymous

very infotmative

Thu, Sep 22, 2005 Kai A. Frankfurt, Germany

What is a "low throughput value" in numbers for a 100 Mbps-Ethernet?

Tue, Sep 13, 2005 Tim W. Rich, VA

I have also seen instances where a small change in the registery can cause a significant slowdown in network response on the machine in which the change was made.

Add Your Comment Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Please type the letters/numbers you see above