ISA Server 2006 SP1 – New Perfmon Counter

Introduction

Within all the new features and enhancements that ISA Server 2006 SP1 brings there is one in particular that might be overlooked: the new performance counter. As the ISA Server 2006 SP1 release notes says this performance counter was added to measure the kilobytes per second for a HTTP/HTTPs requests and responses.

If you open perfmon and add the object ISA Server Web Proxy, you will see the new counter called Average Request Processing Rate.


Figure 1 – New perfmon counter.

But, how can this really be used? This post will give you more details about this feature and how to use it.

How the Counter Evaluates the Traffic

The counter uses the following steps for evaluation:

1. Get the collection of all requests that are logged (as opposed to ended / finished; logging has a certain propagation delay) during the sample interval. For example, suppose our sample interval is 5 seconds, a request started on 1-st second, finished on 3-rd second; there is certain size and processing rate respectively. One could suppose that the relevant measurement will have impact on that (from 0 to 5) bucket value, but it is not necessarily so. It depends on when the request has been logged. If that request has been logged on 7-th second only it measurement will be reflected in counter value for the second bucket (5 to 10).

2. Get sub-collection of all requests that match the processing time and request size specifications.

3. Evaluate processing rate for each member of the above collection; e.g. “request size” divided by “processing time”.

4. Average of the above values is reported per each sample interval. The average doesn’t give weights to requests, there is a simple average.

When the counter starts and the traffic evaluation considers the following:

1. Only web requests are taken (for example: traffic through web proxy filter).

2. In the above calculation you should take into account only server’s replies. That means that packets sent from client to the server in order to get some particular page does not participate in the calculation; only server’s replies do.

3. Data that comes from ISA cache is relevant (not only what comes from the responding server).

4. We count HTTP request only (e.g. HTTPS requests are ignored as well as all other protocols).

How to Use the Script

To access the complete script review the ISA Server 2006 SP1 release notes or access the ISA Server 2006 Service Pack 1 Features Blog Post. Under How the Counter Evaluates the Traffic session we are talking about “sub-collection of all requests that match the processing time and request size specifications”. What does it mean and how the specifications can be configured?

In the script there are 4 values defined as shows below:

SetValue "RequestProcessingTimeLowBoundary", 5 ' milliseconds

SetValue "RequestProcessingTimeHighBoundary", 200 ' milliseconds

SetValue "RequestSizeLowBoundary", 0 ' bytes

SetValue "RequestSizeHighBoundary", 5000 ' bytes

You can change the values as you will, and after run the script and restart the engine, these settings are applied. For example if you run the script as is, then all packets which matches the values below will be ignored for purposes of counter evaluation:

  • Size is greater than 5000 bytes
  • or processing time is less than 5 milliseconds
  • or processing time is greater than 200 milliseconds

You can disable the filtering by setting all values to zero.

How can I use this counter on daily basis?

Before tell you how this counter can help you on the daily basis it is important to remind you about two core articles:

  • Capacity Planner: use this planner to assist you on ISA Server sizing. It can be used for new implementations to see what type of hardware you will need for your ISA Server. But it can also be used for existing installations where you need to know if your ISA Server is appropriable for your needs.
  • ISA Server 2006 Performance Best Practices: this is the ultimate paper to understand what the key components of ISA Server are and how to measure them.

After read those two core documents you can add on top of that this counter to measure Kbytes per second for an HTTP/HTTPS request/response. This can be used for a proactive reason, for example: you want to know if there is any trend of HTTPs slowing response during some times of the day. This also can be used reactively for troubleshooting purpose, for example: you want to confirm that the HTTPs response is really going as slow as the users are mention. The suggestion here is to also use the ISA Server Monitoring and Troubleshooting Performance article. Although the article is for ISA Server 2004, the recommendations and troubleshooting steps also apply to ISA Server 2006.

Authors

Alexey Doctorovich

ISA Sustained Engineering Team

Yuri Diogenes

Security Support Engineer – ISA/IAG Team

Jim Harrison

Microsoft Forefront (ISA/TMG) Sustained Engineering Team