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
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.
Note: The graph control is in the process of being completely rewritten with a few totally new functions built in. e.g. clicking to see the time somewhere in the middle of the graph - stay tuned!
- 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.
- 1.4.9 - Added displaying latest and earliest times and more line formatting options.
- 1.4.10/11 More line formatting options plus fix bug to not allow duplicate counters.
- 1.4.13 Fixed reported issue with decimal scaled values when using other 'cultures'/formatting.
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]\[plot style]
- 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)
- The plotting style of data points. could be 0 - None, 1 - Dots, 2 - Cross or 3 - Ex
".\Processor\% Processor Time\_Total\1\1"
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.
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