SQL Server Network Related Performance Monitor Counters


By:   |   Updated: 2021-10-13   |   Comments   |   Related: More > Monitoring


A Beginners Guide to SQL Server Monitoring

Free MSSQLTips Webinar: A Beginners Guide to SQL Server Monitoring

Monitoring is more than a little complicated. You might need to know what is going on right now, what was going on while you were at lunch, or any of a dozen trends over the past year. You want to measure how things are performing, but you also need to know when things are going wrong - jobs failing, deadlocks, and timeouts are just some of the things we need to check on sooner rather than later.


Problem

You could have a blazingly fast SQL Server with enough memory and CPU, and fast disk, but if there is a network issue fingers still get pointed to 'the database'. How can you use Windows Performance Monitor to look for network related issues that could be affecting perceived SQL Server performance?

Solution

We've looked at how to gather and review some general, memory related, and disk related Performance Monitor Counters. Now, we'll look at some network related counters.

Objects / Counters

The following table has a list of Perfmon Objects / Counters related to network performance with their descriptions and a guide of expected values. As with any Perfmon data we're using the output as a benchmark. It's not a direct link to a certain problem but the data is useful to see when we need to see what areas to start looking at and to see what changes improve, or hopefully not degrade performance.

Perfmon Object Perfmon Counter Counter Description What to Look For
Network Interface Bytes Received/sec Bytes Received/sec is the rate at which bytes are received over each network adapter, including framing characters. Network Interface\Bytes Received/sec is a subset of Network Interface\Bytes Total/sec. Baseline or higher
Network Interface Bytes Sent/sec Bytes Sent/sec is the rate at which bytes are sent over each network adapter, including framing characters. Network Interface\Bytes Sent/sec is a subset of Network Interface\Bytes Total/sec. Baseline or higher
Network Interface Bytes Total/sec Bytes Total/sec is the rate at which bytes are sent and received over each network adapter, including framing characters. Network Interface\Bytes Total/sec is a sum of Network Interface\Bytes Received/sec and Network Interface\Bytes Sent/sec. (Network Interface(n)\Bytes Total/sec ÷ Network Interface(n)\Current Bandwidth) *100 should be less than 90
Network Interface Current Bandwidth 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. (Network Interface(n)\Bytes Total/sec ÷ Network Interface(n)\Current Bandwidth) *100 should be less than 90

Add Counters

Windows Key + R: to open the Run menu.

  1. Enter perfmon in the run box
  2. OK
Start Perfmon

Click the 'X' symbol to remove default % Processor Time counter (This is an optional step. I just find it easier to have as clean an output as possible.)

  1. Click the 'plus symbol' to bring up 'Add Counters' screen and start adding counters
Add Counters 1
  1. Scroll to and click the Network Interface dropdown in the Perform Objects box
  2. Select Bytes Received/sec
  3. <All Instances>Select drives
  4. Add
  5. Click OK
Add Counters 2

Create Collector Set

To save the added Counters we'll save them to a Collector Set. This will let run the Counters without having to re-add them and also run on a schedule.

  1. Right click Performance Monitor
  2. New
  3. Data Collector Set
Create Collector Set 1
  1. Enter a name (I chose SQL Server Network Performance, but you can call it anything that makes sense to you.)
  2. Next
Create Collector Set 2
  1. Accept or change directory
  2. Finish
Create Collector Set 3
  1. Finish
Create Data Collector Set 4

Run Collector Set

Run the Collector set to start gathering data.

  1. Expand User Defined dropdown
  2. Right click on Collector Set
  3. Properties
Run Collector Set 1
  1. Directory tab
  2. Enter name of subdirectory
  3. Enter MMddyymmss in 'Subdirectory name format:' files (This will let you create a new file for every time the Collector Set is run. Otherwise, you'll get an error saying 'When attempting to start the Data Collector Set the following system error occurred: Cannot create a file when that file exists.').
Run Collector Set 2

We're going to manually start the Collector Set so just need to tell it how long to run.

  1. 'Stop Condition' tab
  2. Check 'Overall duration'
  3. Select number of units to run
  4. Select units to run
  5. OK
Run Collector Set 3
  1. Right click on Collector Set
  2. Start
Run Collector Set 4

Save Collector Set to Template

To be able to import the Collector Set to another Windows machine we can save it to a template.

  1. Right click on Collector Set
  2. 'Save Template'
Save Collector Set Template 1
  1. Select file location
  2. Name file
  3. Save
Save Collector Set Template 2

View Performance Data

24 hours have passed and it's time to view the performance data.

  1. Right click on Collector Set
  2. Latest Report
View Report 1

The graphical representation of the data is in the top part of the window and we can click on each Counter and drive to get data for each in the bottom.

View Report 2

Here, I've unchecked all but Bytes Received/sec and Bytes Sent/sec for Instance Microsoft Hyper-V Network Adapter for comparison.

This gives us a short baseline for a 24-hour period. Overall, we would like to see the counters at or above the baseline.

View Report 3

The same can be done for each Instance.

View Report 4

Here, we'll calculate our threshold for the Microsoft Hyper-V Network Adapter. The Average Bytes Total/sec = 96.853 and Average Current Bandwidth = 1,000,000,000

View Report 5

Apply the numbers in the formula: (Network Interface(n)\Bytes Total/sec ÷ Network Interface(n)\Current Bandwidth) *100.

(96.853 ÷ 1,000,000,000) *100 = 0.0000096853 which is well below the threshold of 90.

View Perfmon Data in an Excel Spreadsheet

We'll export our Counter data to a .csv file as we've done before to be able to view and analyze it in a spreadsheet. Export the data collected to a .csv file.

  1. Right click anywhere
  2. Save Data As…
Export Perfmon Data 1
  1. Choose file location
  2. Name file
  3. Select 'Text File (Comma delimited)(.csv)' in dropdown
  4. Save
Export Perfmon Data 2

Made the following formatting changes to make it more readable:

  • Format of the first column to a time format
  • Top row Alignment to Word Wrap
  • Made all columns the same width
Formatted .csv

File -> Save As

  1. Choose Excel Workbook (*.xlsx) in dropdown
  2. Save
Save as Excel Spreadsheet
Next Steps

So far, in this and previous tips we've seen how to analyze some basic disk related Perfmon data, specific memory related data, specific disk related data and now specific network related data.

Here are some links with further information:






get scripts

next tip button



About the author
MSSQLTips author Joe Gavin Joe Gavin is from Greater Boston. He has held many roles in IT and is currently a SQL Server Database Administrator.

View all my tips


Article Last Updated: 2021-10-13

Comments For This Article





download














get free sql tips
agree to terms