Project Description
This small utility helps to monitor performance counters without using the full blown perfmon tool from Windows. It supports a number of command line parameters and can be launched from batch files, shortcuts or (from version 1.4) preset qpmset files.



This small utility was developed to help monitor sets of performance counters quickly and (only) as needed. It is based on C2DPushGraph graph control but I have customized and enhanced it quite a bit for my needs. The main aim for the utility is to be really 'simple' without too many fancies - but it is evolving and more things might get added over time.

Update history

  • 1.4.4 - The tool now has the functionality to log the performance counter values to a csv file.
  • 1.4.5 - Enhanced logging options. Check for available disk space, create new file every X MB and change sample rate i.e. only log data for every N times the graph is updated. Additionally the tool will now upgrade/remember previous version settings.
  • 1.4.6 - Small bug fix to graph control to avoid negative/large perf counter values crashing the app.
  • 1.4.8 - Added 'snapping' to desktop plus 'cloning' of performance counters to ease adding a bunch of counters together.


The tool can be executed with parameters. At the moment there is no restriction on the number of performance counters that can be specified although it would be impractical to specify too many. Each performance counter specified must looks like this:

[Machine name]\[Category]\[Counter name]\[Instance name]\[scale]
  • The machine name is the name of the computer where the performance counter is published.
  • The category of the performance counter
  • The name of the performance counter
  • The instance name if it exists
  • the scale of the performance counter (default = 1)

An example:
".\Processor\% Processor Time\_Total\1"

Additional parameters

The following additional parameters can be specified:
  • -max: Set the initial Y axis maximum value (default = 100)
  • -lt: Set the default line thickness (default = 1)
  • -title: Set a customized title for the window (helps if you have several windows open)


You can customize the following while running:
  • Updating frequency/Pause
  • Color of each line/counter
  • Scale of each line/counter


As of version 1.4 the application allows you to add and remove performance counters at run-time.

qpmset Files

As of version 1.4 you can load and save performance counter sets to a file for reuse. The files are actually only an XML file with a different extension so it can be edited with any text editor if needed.

Logging data to csv files

The tool supports logging data to a csv file. The following logging options are available:


Running the utility with the following parameters:
QPerfMon.exe ".\Processor\% Processor Time\_Total" ".\Memory\% Committed Bytes In Use\\" ".\Memory\Pages/sec\\0.1" ".\PhysicalDisk\Avg. Disk Queue Length\_Total\100" -title:Test
Note: remember to escape the '%' character in a batch file.
Would look like this:

Additionally the formatting of a line can be changed afterwords:

Dependencies and platform support

The utility was developed using C# with .Net 2.0 (using VS2008). The reason for not using newer versions of the .Net framework is simply so it can still be used on older Win XP/2003 servers etc. It has been tested on Windows XP, 2003, Vista and Windows 7 (32 and 64-bit).

Last edited Dec 8, 2010 at 11:14 AM by RudolfHenning, version 27