Applies to: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Topic Last Modified: 2009-07-24

This topic provides guidance about the most useful performance counters to monitor on servers running Microsoft Exchange Server 2007 with the Client Access role installed. When monitoring Exchange 2007 servers, you should know which performance aspects are most important. The counters and threshold values detailed in this topic can be used to proactively identify potential issues and help identify the root cause of issues when troubleshooting.

ASP.NET Counters

Exchange Web Services depend upon both .NET Framework and ASP.NET. Issues with either foundation can cause significant problems for the Client Access server role. The following counters can be used to locate issues not with Exchange Web Services themselves but with the underlying architecture.

Counter Expected values

ASP.NET\Application Restarts

Shows the number of times the application has been restarted during the Web server's lifetime.

Should be 0 at all times.

ASP.NET\Worker Process Restarts

Shows the number of times a worker process has restarted on the computer.

Should be 0 at all times.

ASP.NET\Requests Current

Shows the current number of requests, including those that are queued, currently executing, or waiting to be written to the client. Under the ASP.NET process model, when this counter exceeds the requestQueueLimit defined in the processModel configuration section, ASP.NET will begin rejecting requests.

The maximum value is 5,000. The server will return a 503 error if this value is exceeded.

Note:
This value can be increased in the machine.config file to allow for Client Access server scalability.

Should be less than 5,000 at all times.

ASP.NET\Request Wait Time

Shows the number of milliseconds the most recent request was waiting in the queue.

Should be less than 1,000 milliseconds (ms) at all times.

ASP.NET Applications(*)\Requests In Application Queue

Shows the number of requests in the application request queue.

The maximum value is 5,000. The server will return a 503 error if this value is exceeded.

Should be less than 5,000 at all times.

Availability Service Counters

The Availability service in Exchange 2007 replaces the legacy Schedule+ Free/Busy system folder, providing Microsoft Office Outlook 2007 clients a more up-to-date means of checking resource availability. These counters help you to assess the client load and responsiveness of the service itself.

Counter Expected values

MSExchange Availability Service\Availability Requests (sec)

Shows the number of requests serviced per second. The request can be only for free/busy or include suggestions. One request may contain multiple mailboxes.

Determines the rate at which Availability service requests are occurring.

Not applicable

MSExchange Availability Service\Average Time to Process a Free Busy Request

Shows the average time to process a free/busy request in seconds. One request may contain multiple mailboxes. Free/busy responses do not have meeting suggestions.

Should always be less than 5.

Client Access Server Disk Counters

Because Client Access servers typically perform all operations exclusively in memory, disk resource usage should be minimized. These counters alert an administrator to unusual disk activity based on the system's role.

Note:
These counters assume that the server is performing only the Client Access server role. These counters are inappropriate for servers performing multiple role functions, because their profile is markedly different.

Counter Expected values

LogicalDisk(_Total)\Disk Reads/sec

Indicates that a paging situation may exist because data was read from disk instead of memory.

Should be less than 50 at all times.

Disk Writes/sec + Disk Reads/sec = < 50

LogicalDisk(_Total)\Disk Writes/sec

Indicates that a paging situation may exist because data was written to disk instead of being stored in memory.

Should be less than 50 at all times.

Disk Writes/sec + Disk Reads/sec = < 50

Outlook Web Access Counters

These new counters for Outlook Web Access help you to determine if problems with HTTP access are local to the Client Access server.

Counter Expected values

MSExchange OWA\Average Response Time

Shows the average time (in milliseconds) that elapsed between the beginning and end of an OEH or ASPX request.

Used to determine the latency that a client is experiencing.

Should be less than 100 ms at all times.

Higher values may indicate high user load or higher than normal CPU time.

MSExchange OWA\Average Search Time

Shows the average time that elapsed while waiting for a search to complete.

Should be less than 31,000 ms at all times.

ActiveSync Service Counters

These new counters for Microsoft Exchange ActiveSync help you to determine if problems with mobile device access are local to the Client Access server.

Counter Expected values

MSExchange ActiveSync\Average Request Time

Shows the average time that elapsed while waiting for a request to complete.

Includes Ping Request Time, which can increase the general response time of this counter. Adding ping counters helps clarify where performance is being impacted.

Determines the rate at which Availability service requests are occurring.

Not applicable

Client Access Server Counters for Determining Load

These counters are invaluable for determining the user demands of a Client Access server and therefore provide critical information for scalability and deployment decisions.

Counter Expected values

MSExchange ActiveSync\Requests/sec

Shows the number of HTTP requests that are received from the client via ASP.NET per second.

Determines the current Exchange ActiveSync request rate.

Not applicable

MSExchange ActiveSync\Ping Commands Pending

Shows the number of ping commands that are currently pending in the queue.

Determines current ping commands pending in the queue.

Not applicable

MSExchange ActiveSync\Requests/sec

Shows the number of HTTP requests that are received from the client via ASP.NET per second.

Stats Only to determine current user load.

Not applicable

MSExchange ActiveSync\Sync Commands/sec

Shows the number of Sync commands that are processed per second. Clients use this command to synchronize items within a folder.

Stats Only to determine current user load.

Not applicable

MSExchange Availability Service\Availability Requests (sec)

Shows the number of requests serviced per second. The request can be only for free/busy or include suggestions. One request may contain multiple mailboxes.

Determines the rate at which Availability service requests are occurring.

Not applicable

MSExchange OWA\Current Unique Users

Shows the number of unique users currently logged on to Outlook Web Access. This value monitors the number of unique active user sessions, so that users are only removed from this counter after they log off or their session times out.

Determines current user load.

Not applicable

MSExchange OWA\Requests/sec

Shows the number of requests handled by Outlook Web Access per second.

Determines current user load.

Not applicable

MSExchangeAutodiscover\Requests/sec

Shows the number of Autodiscover service requests that have been processed each second.

Determines current user load.

Not applicable

MSExchangeWS\Requests/sec

Shows the number of requests processed each second.

Determines current user load.

Not applicable

Web Service(_Total)\Current Connections

Shows the current number of connections established with the Web service.

Determines current user load.

Not applicable

WebService(_Total)\Connection Attempts/sec

Shows the rate that connections to the Web service are being attempted.

Determines current user load.

Not applicable

Web Service(_Total)\ISAPI Extension Requests/sec

Shows the rate that Internet Server API (ISAPI) extension requests are received by the Web service.

Outlook Anywhere clients make use of this ISAPI extension for RPC over HTTP requests on servers running the Windows Server 2003 operating system. For Windows Server 2008 counters, see "RPC/HTTP Proxy Counters (Windows Server 2008 Only)" later in this topic.

Determines current user load.

Not applicable

Web Service(_Total)\Other Request Methods/sec

Shows the rate HTTP requests are made that do not use the OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, MOVE, COPY, MKCOL, PROPFIND, PROPPATCH, SEARCH, LOCK or UNLOCK methods.

Determines current user load.

Not applicable

RPC/HTTP Proxy Counters (Windows Server 2008 Only)

The RPC/HTTP Proxy component in Windows Server 2008 avoids many of the limitations of the Windows Server 2003 equivalent, and these counters assist you in assessing the load and issues with the proxy component.

Counter Expected values

RPC/HTTP Proxy\Current Number of Incoming RPC over HTTP Connections

Shows the current number of front-end HTTP connections.

Determines current user load.

Not applicable

RPC/HTTP Proxy\Current Number of Unique Users

Shows the number of unique users currently connected to a back-end server via RPC/HTTP.

Determines current user load.

Not applicable

RPC/HTTP Proxy\RPC/HTTP Requests per Second

Shows the rate of RPC/HTTP requests sent to the back-end servers.

Determines current Outlook Anywhere load.

Not applicable

RPC/HTTP Proxy\Number of Failed Back-End Connection attempts per Second

Shows the rate at which the RPC proxy attempts are occurring but fail to establish a connection to a back-end server.

Should be 0 at all times.

Client Access Server OAB Download Counters

The following counters help track if the Client Access server is having problems downloading the offline address book (OAB) from the Mailbox servers and whether the OAB is not being updated on a default schedule.

Counter Expected values

MSExchangeFDS:OAB(*)\Download Task Queued

Shows a value of 1 if the task is queued for execution, otherwise shows 0.

Should be 0 at all times.

Values greater than 0 indicate a failure to copy OAB data files from Mailbox servers.

MSExchangeFDS:OAB(*)\Download Tasks Completed

Shows the number of OAB download tasks completed since the File Distribution service started. The default value is every 480 minutes or 8 hours.

Should be less than or equal to 3 per day. Values greater than 3 per day indicate the schedule for the Client Access server to download updated OAB files is not a default schedule.