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
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 MCPmag.com editors at mailto:[email protected];
the best questions get answered in this column and garner
the questioner with a nifty MCPmag.com 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 fs1.mcpmag.com
TCP STREAM TEST to fs1.mcpmag.com
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 fs1.mcpmag.com and ran the
command netserver.exe. I then went to another system
and ran "netclient –H fs1.mcpmag.com."
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.