Creating Baselines: Performance Monitor Setup Guide

how to create a baseline in performance monitor

Performance baselines are an important tool for monitoring the performance of a system over time. A baseline is established by recording various aspects of a system's performance, such as processor utilisation and memory usage, which can then be used for comparison to identify performance issues and determine when a system needs to be upgraded. This can be done using Windows Performance Monitor (PerfMon), which is an MMC snap-in that allows users to monitor the performance statistics of a Windows server in real-time or over a set period. By creating a custom counter log and selecting specific performance indicators, users can establish a performance baseline that can be used to identify anomalies and troubleshoot issues.

Characteristics Values
When to create a baseline Immediately after a new system has entered production
How often to create a baseline At regular intervals
Tools Performance Monitor (PerfMon)
Objects Memory, Network, Paging File, Processor, etc.
Counters % processor time, % privileged time, % user time, interrupts/second, etc.
Instances Each counter can have one or more instances
Sample interval 15 seconds, 30 seconds, or more
Log file type Binary, delimited text, or streamed to an SQL database
Log file location Can be changed on the Log Files tab
Log file size Can set a maximum size or use a Binary Circular File
Start and stop times Can be set manually or scheduled

shundigital

Understanding the three fundamental levels of monitoring criteria: objects, counters, and instances

Performance Monitor is a tool that comes with Windows operating systems, allowing users to measure system and application performance by collecting reliable performance data. Performance Monitor can be used to monitor performance in real-time or to collect data over time.

Performance Monitor uses three fundamental levels of monitoring criteria: objects, counters, and instances. These three levels work together to provide detailed insights into system performance.

Objects are the top-most criteria and represent a set of attributes on the server that can be monitored. Common objects include Memory, Network, Paging File, and Processor.

Counters are a subset of an object. Each object will have multiple counters associated with it. For example, the Processor object may have counters such as % processor time, % privileged time, and % user time.

Instances refer to specific instances of a counter. For example, in a dual-processor system, the % processor time counter would have two instances – one for each processor (0 and 1). It is possible to monitor a specific instance of a counter or view all instances.

By understanding these three levels, users can customize their performance monitoring to capture the specific data they need. For instance, while it is possible to monitor all counters and instances for an object, this may result in collecting too much data, putting strain on the server, and making it challenging to analyze the results. Therefore, selecting relevant counters and instances is crucial for effective performance monitoring and baselining.

shundigital

Selecting the right counters for your baseline

When selecting the right counters for your baseline, it's important to consider the specific system or server you're working with, as different counters will be relevant for different roles. For example, the counters for a SQL server will differ from those for an Exchange Server.

  • Processor% Processor Time: This counter tracks the percentage of time the processor spends executing non-idle threads. It is considered the primary indicator of processor activity.
  • Pages/sec: This counter measures the rate at which pages are read from or written to the disk, indicating the kinds of faults that cause system-wide delays.
  • PhysicalDiskAvg. Disk Queue Length: This counter shows the average number of read and write requests queued for a selected disk during a sample interval.
  • PhysicalDiskAvg. Disk sec/Read and PhysicalDiskAvg. Disk sec/Write: These counters measure the average time, in seconds, for reading from or writing to a disk.
  • Transaction/sec: This counter tracks the number of transactions per second at a database level.
  • Batch Requests/sec: This counter measures all batches sent to the server, even those not participating in a transaction.

When establishing a baseline, it's crucial to capture the basic information about the performance of a server. Adding too many counters can put undue strain on the server and skew the baseline results. Therefore, it's recommended to only add the specific counters relevant to the system being monitored.

shundigital

Setting up the sample interval

The default setting for the sample interval is 15 seconds, which is usually sufficient. However, if the server is heavily utilized, you can set the sampling interval to 30 seconds or higher to reduce the impact of Performance Monitor on normal running conditions.

To set the interval, go to the General Tab and set the "Sample data every:" parameter to your desired setting, along with the corresponding units (in seconds, by default).

It's important to note that lowering the default value and sampling more often may create an excessive burden on the server. While it is generally recommended to use a 1-second sampling interval, this will take a heavier toll on the system. However, in most cases, the overhead of using a 1-second interval will not significantly impact the results.

By using a higher sampling interval, you can capture more detailed and helpful information about your system's performance. However, it's crucial to understand the impact of your monitoring activities and ensure that they do not excessively skew your results. Striking a balance between capturing detailed data and minimizing the performance impact on the server is essential.

Additionally, you can customize the type of log file and its storage location. Binary log files are typically sufficient for reviewing data in Performance Monitor, but you also have the option to use delimited text files or stream the data to an SQL database.

By carefully configuring the sample interval and log file settings, you can ensure that you collect reliable performance data without imposing unnecessary strain on your server.

shundigital

Choosing the type of log file

However, you also have the option to use a delimited text file or stream the data to an SQL database. Delimited text files cannot be read by PerfMon, but they offer more flexibility if you need to analyse the data in other programs. Streaming to an SQL database can be useful if you want to store the data in a structured format and leverage the capabilities of a relational database for analysis.

Another option is to use a Binary Circular File. With this option, once the log file reaches the specified maximum size, PerfMon will start overwriting the oldest information to make room for new data. This ensures that your log file never exceeds the specified size and that you always have the most recent performance statistics available.

It's important to consider your specific requirements and choose the type of log file that best suits your needs. Additionally, you can set a maximum file size to prevent the log file from growing too large and consuming all the available drive space.

shundigital

Configuring performance alerts

Performance Monitor (PerfMon) is a tool integrated into Windows operating systems that allows software professionals to measure system and application performance by collecting reliable performance data. It is a useful tool for diagnosing performance problems.

To create a baseline for a Windows Terminal Server, select Counter Logs under Performance Logs and Alerts. Here, you can create your own custom counter log. Right-click on Counter Logs and select New Log Settings. Name the job descriptively, including the server name and the date the baseline is being taken.

Next, set up the counters. It is advisable to only add the specific counters you wish to track, rather than adding entire objects, which can result in too much data being collected. Click the 'Add Counters' button to select specific counters and instances.

For a well-rounded baseline, the following counters are recommended:

  • Avg Disk Bytes/Transfer
  • Avg Disk Queue Length
  • Avg Disk Sec/Transfer
  • Context Switches/Sec
  • Processor Queue Length

For Terminal Servers, the following counters are also useful:

Terminal Services Session

After adding the relevant counters, select the sample interval. The default is 15 seconds, but this can be increased to reduce the impact on normal running conditions.

On the Log Files tab, you can specify the type of log file and its storage location. A binary log file is usually sufficient, but there is also the option of a delimited text file or streaming the data to an SQL database.

To prevent log files from growing too large, it is advisable to set a maximum file size. Alternatively, you can use a Binary Circular File, which will overwrite the oldest information to make room for new data, ensuring the log file never exceeds the specified size.

Finally, on the Schedule tab, you can set a start and stop time/date for the PerfMon job. It is good practice to set a stop time to prevent logs from accidentally filling up the drive.

Once you have completed the above steps, you can start collecting data. It is recommended to run the server in production as usual to capture performance statistics under normal use, providing a good baseline for future comparison.

Frequently asked questions

A performance baseline is a record of a system's "average use", which can be used to identify anomalies and address them before they become issues. It is a vital part of your system documentation.

A baseline should be established immediately after a new system has entered production and should be repeated at regular intervals.

In Windows, the primary tool used to capture a baseline is Performance Monitor (PerfMon). PerfMon is an MMC snap-in that enables you to record various aspects of your system, such as processor and memory usage.

Baselines should be created at multiple intervals, including low, normal, and peak usage times. New baselines should also be generated after hardware upgrades or major software updates.

Written by
Reviewed by
Share this post
Print
Did this article help you?

Leave a comment