I've been looking over Microsoft's performance monitor documentation and the one thing I'm confused about is scaling. Is it purely just for viewing the data more easily?

I'm trying to view performance of my network card using the Current Bandwidth performance monitor. It's always at 100 and I was thinking I need to scale it to something proper but I'm not well versed on how scaling it effects the way the data is perceived.

How would I know which scale to pick? What I don't want is to think its on 10% load when it really is a different load.


The key to that particular counter is in the decription:

Current Bandwidth is an estimate of the current bandwidth of the network interface in bits per second (BPS). For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this value is the nominal bandwidth.

For an Ethernet NIC, the second sentence in the description describes what you should see in perfmon:

For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this value is the nominal bandwidth.

What you're probably looking for is bandwidth utilization, not bandwidth. Bandwidth is a measure of how much data can be placed on the interface (it's capacity in bps, Kbps, Mbps or Gbps), bandwidth utilization (usage) is a measure of how much of the available bandwidth is actually being utilized.


Warning! Performance monitoring and scales in Windows have perplexed many, many people and you will be hard pressed to find a definitive source of information. Having said that, I'll at least give you what I know.

Each counter returns its own values. Sometimes it's a percent, sometimes its an integer.

If it's a percent, things can get confusing because some counters will aggregate multiple instances of a sub-system and present the number as something greater than 100%. For example, I think its process(_total)\%processor time average that will take each core, add what percentage of usage it's under, and then can present you with a number greater than 100%. Four cores with 50% usage will be represented by the number 200.

If it's an integer, then it's wholly up to you to figure out what number is actually returned, based on either the name of the counter, or the documentation that may or may not be associated with it. Is it returning Megabytes, Megabits, bps, fps, gps, pps? Who even knows. You have to figure that out first. Once you do, what the base number will be ($n x 1.0) will then make sense. At that point you can then scale it to be viewable in whatever number you want. So for example, a counter that returns Mbps will show you a 5Mbps load as 5.0. Do you want to see it broken down finer? Then scale it to 10 or 100.

As for what the scale on the left of Permon is, remember that you could place any number of different counters, counting any number of different metrics in any number of different scales. There's no way that a scale could accurately reflect any kind of correlation between them all.I haven't yet found a way to use that scale to any positive effect when multiple types of metrics are being graphed at multiple scale. Sad to say, there is still lots left to be explained about perfmon's behavior.

P.S. "Current Bandwdith" will always be at 100 because your NIC is 100BASE-T. You probably want to look at the Bytes Received and Bytes Sent counters.


Others have pointed out that you don't want to see your network card utilization with the Current Bandwidth counter but I'd like to add to the information in terms of scale. In my experience scaling the different counters is mostly a matter of letting you see the overall flow in terms of peaks and valleys of the counter.

The Y-axis is between 0 and 100, the scale just allows you to zoom in and out on the counters line. Sometimes you want to see the counter activity from a high level view and get an idea of the peaks and valleys over a certain time period, in that case you might set the scale with several zeros between the decimal and the 1. If you want to zoom in on a trouble spot and get a more granular view of what's happening, you might set the scale to 10, 100, 1000, or higher. Think of it as zooming in and out on the line to get a close in or high level view.

In your example above of mistaking a 10% load for something else, whenever you look at a counter on the graph, note the scale value so you know the proper counter value. If the scale is set to 1, then it is obvious that it is 10%, if you set the scale to 10000, then the line will look like it's close to 0, if you're not sure, select the value and check the min/max/avg values displayed and adjust the scale accordingly.

Using perfmon can be painstaking work sometimes but it can display some pretty useful information if used properly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.