Reading Performance Counters on Vista and Server 2008 Machines

Users commonly experience problems collecting counters during a load test. These problems come in two flavors: 1) they are not able to collect any counters at all from a machine or machines, and 2) they see gaps in the counter collection. This article addresses the first problem.

If you are experiencing this problem, you'll see errors in the load test of the form:

Exception LoadTestCounterCategoryNotFoundException 3 The performance counter category 'Network Interface' cannot be accessed on computer 'VSNC' (Access is denied) ; check that the category and computer names are correct. 

The "gold standard" for understanding whether or not remote counter collection is enabled is to run perfmon.exe as the user who is collecting the counters. Simply logon as that user and run perfmon and add a counter from the machine you are collecting from. If you are running user a controller and agents, you must log on as the controller service user.

If you experience problems connecting to the computer, follow these steps.

In order to allow remote performance counter collection for a machine, you need to follow these steps on the machine you are collecting from. Note if you are using a test controller, the user account is the account the controller service is running as. If you are running load tests locally, the counters are collected using your user credentials.

  1. Run WF.msc 
    1. Enable the Performance Logs & Alerts firewall exception
    2. On Vista, enable the File and Printer Sharing firewall exception
  2. Run lusrmgr.msc
    1. Add the user to the Performance Log Users, Performance Monitor Users, or Administrators group.
    2. Add the user to the Event Log Readers group
  3. Run services.msc 
    1. Set the Performance Logs & Alerts service to autorun
    2. Set the Remote Registry service to autorun
  4. Run secpol.msc to assign the Log on as a Batch User privilege to Performance Log Users and Performance Monitor Users group:
    1. In Local Security Policy navigate to Local Policies -> User Right Assignment
    2. Double-click on "Log on as batch job"
    3. Add Performance Log Users group
    4. Add Performance Monitor Users group

Open a command prompt and rebuild all counters on the machine by running

lodctr /r

This Technet article goes through these various steps as well.

Here's a summary:

Vista/Server 2008

Able to view counters

Able to log counter data

Prompts a elevation to query counter data

Standard user

No

No

No

Admin

Yes

Yes

Yes

Performance Log Users

Yes

Yes

No

Performance Monitor Users Group

Yes

No

No

I believe the steps are the same for Server 2003, but need to confirm that.

Hope that helps,

Ed.