Applies to: Exchange Server 2007 SP3
Topic Last Modified: 2009-10-08

Counters are used to provide information about the performance of Microsoft Exchange Server 2007 on servers that have been assigned the Edge Transport server role. The counter data can help you determine system bottlenecks and help you fine tune system and application performance. In this topic, we describe the counters that you can use to monitor Edge Transport servers to determine of how well the system is performing.

The following counters are available to measure Edge Transport server performance:

Performance Counters for Transport Queues

A queue is a temporary holding location for messages that are waiting to enter the next stage of processing. Each queue represents a logical set of messages that a Edge Transport server processes in a specific order. The following table describes the counters that you can use to determine if a queuing problem is occurring on a local or a remote Edge Transport server.

Counter Expected values

MSExchangeTransport Queues(_total)\Aggregate Delivery Queue Length (All Queues)

The number of messages queued for delivery in all queues.

Should be less than 3,000 and not more than 5,000.

MSExchangeTransport Queues(_total)\Active Remote Delivery Queue Length

The number of messages in the active remote delivery queues.

Should be less than 200. A value of 250 or more indicates a critical issue.

MSExchangeTransport Queues(_total)\Submission Queue Length

The number of messages in the Submission queue.

Should be less than 100. A value of 250 or more indicates a critical issue.

MSExchangeTransport Queues(_total)\Retry Remote Delivery Queue Length

The number of messages in the remote delivery queues that are waiting to be retried.

Should be less than 100. A value of 250 or more indicates a critical issue. If this value is high, we recommend that you check the next hop to determine the causes for the long queues.

MSExchangeTransport Queues(_total)\Unreachable Queue Length

The number of messages in the Unreachable queue.

Should be less than 100. A value of 250 or more indicates a critical issue.

MSExchangeTransport Queues(_total)\Largest Delivery Queue Length

The number of messages in the largest delivery queue.

Should be less than 200 for the Edge Transport server. A value of 250 or more indicates a critical issue.

MSExchangeTransport Queues(_total)\Poison Queue Length

The number of messages in the poison message queue.

Should be 0 at all times. A value of 5 or more indicates a critical issue.

Performance Counters for Transport Mail Database

The following counters were introduced in Exchange Server 2007 Service Pack 1 (SP1). These counters expose important information about the Edge Transport mail database.

Counter Expected values

MSExchange Database ==> Instances(*)\I/O Log Writes/sec

The rate at which log file write operations are completed.

Not applicable.

MSExchange Database ==> Instances(*)\I/O Log Reads/sec

The rate at which log file read operations are completed.

Not applicable.

MSExchange Database ==> Instances(*)\Log Generation Checkpoint Depth

Represents the amount of work that will need to be redone or undone to the database files if the process fails. This is documented in the log file count.

Should be less than 1,000 at all times. A value of 60,0000 or more indicates a critical issue.

MSExchange Database ==> Instances(*)\Version buckets allocated

Shows the total number of version buckets that have been allocated for the database.

Should be less than 200 at all times.

MSExchange Database ==> Instances(*)\I/O Database Reads/sec

The rate at which database read operations are completed.

Not applicable.

MSExchange Database ==> Instances(*)\I/O Database Writes/sec

The rate at which the database write operations are completed.

Not applicable.

MSExchange Database ==> Instances(*)\Log Record Stalls/sec

Shows the number of log records that cannot be added each second to the log buffers because the log buffers are full. If this counter is not zero most of the time, the log buffer size may be a bottleneck.

Should be less than 10 per second on average. Spikes (maximum values) should not be greater than 100 per second.

MSExchange Database ==> Instances(*)\Log Threads Waiting

Shows the number of threads waiting for their data to be written to the log to complete an update of the database. If this number is too high, the log may be a bottleneck.

Should be less than 10 threads waiting on average.

MSExchange Database(edgetransport)\Database Cache Size (MB)

Shows the amount of system memory, in megabytes, that is used by the database cache manager to hold commonly used information from the database files to prevent file operations. If the database cache size seems too small for optimal performance, and there is little available memory on the system, check the value of Memory/Available Bytes. If you add more memory to the system, it may increase performance. If there is enough memory on the system and if the database cache size is not growing, the database cache size may be capped at an artificially low limit. You can increase the database cache size limit to try and increase performance.

Not applicable.

Performance Counters for Transport Hard Disks

The following table lists counters that can be used to identify hard disk performance bottlenecks. The table also lists the amount of latency that can occur on the hard disk before performance bottlenecks may start occurring.

Counter Expected values

LogicalDisk(*)\Avg. Disk sec/Read

PhysicalDisk(*)\Avg. Disk sec/Read

Shows the average time, in seconds, it takes to read data from the hard disk.

Note:
When looking at hard disks using Perfmon.exe, an understanding of the underlying hard disk subsystem is required to determine which counters (physical disk or logical disk) to look at.

Should be less than 20 milliseconds (ms) on average.

Spikes (maximum values) should not be higher than 50 ms.

LogicalDisk(*)\Avg. Disk sec/Write

PhysicalDisk(*)\Avg. Disk sec/Write

Shows the average time, in seconds, of a write of data to the disk.

Note:
When looking at disks using Perfmon.exe, an understanding of the underlying disk subsystem is required to determine which counters (physical disk or logical disk) to look at.

Should be less than 20 milliseconds (ms) on average.

Spikes (maximum values) should not be higher than 50 ms.

Logical/Physical Disk(*)\Avg. Disk sec/Transfer

Indicates how fast data is being moved (in seconds). Measures the average time of each data transfer, regardless of the number of bytes read or written.

For healthy hard disks, this counter shows approximately 20 ms. Counter values larger than 20 ms, or with large spikes, indicate a possible hard disk issue (for example, failure or slow speed).

Logical/Physical Disk(*)\Avg. Disk Queue Length

The average number of read and write requests that were queried for the selected disk during the sample interval.

Not applicable.

Performance Counters for Transport Rules

Transport rules in Exchange 2007 let you apply messaging policies to e-mail messages that flow through an Exchange 2007 organization. The following table lists counters that can be used to identify Transport Rule performance bottlenecks.

Counter Expected values

MSExchange Transport Rules(*)\Messages Evaluated/sec

Shows the number of messages the rule has evaluated per second.

Not applicable.

MSExchange Transport Rules(*)\Message Processed/sec

Shows the number of messages the rule has processed per second.

Not applicable.

Performance Counters for Edge Domain Controller Connectivity

Exchange 2007 depends on the performance of the global catalog domain controllers. For each of the Exchange servers in the topology, use the counters listed in the following table to determine whether there is a communication slowdown with global catalog servers.

Use the counters listed in the following table to determine whether there is any network performance degradation.

Counter Expected values

MSExchange ADAccess Caches(*)\LDAP Searches/Sec

Shows the number of Lightweight Directory Access Protocol (LDAP) search requests issued per second.

Used to determine the current LDAP search rate.

Not applicable.

MSExchange ADAccess Domain Controllers(*)\LDAP Read Time

Shows the time in milliseconds (ms) to send an LDAP read request to the specified domain controller and receive a response.

Should be less than 50 ms on average.

Spikes (maximum values) should not be higher than 100 ms.

MSExchange ADAccess Domain Controllers(*)\LDAP Search Time

Shows the time (in ms) to send an LDAP search request and receive a response.

Should be below 50 ms on average.

Spikes (maximum values) should not be higher than 100 ms.

MSExchange ADAccess Processes(*)\LDAP Read Time

Shows the time (in ms) to send an LDAP read request to the specified domain controller and receive a response.

Should be below 50 ms on average.

Spikes (maximum values) should not be higher than 100 ms.

MSExchange ADAccess Processes(*)\LDAP Search Time

Shows the time (in ms) to send an LDAP search request and receive a response.

Should be below 50 ms on average.

Spikes (maximum values) should not be higher than 100 ms.

MSExchange ADAccess Domain Controllers(*)\LDAP Searches timed out per minute

Shows the number of LDAP searches that have returned LDAP_Timeout during the last minute.

Should be less than 10 at all times for all roles.

Higher values may indicate issues with Active Directory resources.

MSExchange ADAccess Domain Controllers(*)\Long running LDAP operations/Min

Shows the number of LDAP operations on this domain controller that took longer than the specified threshold per minute. (Default threshold is 15 seconds.)

Should be less than 50 at all times.

Higher values may indicate issues with Active Directory resources.

Performance counters for Active Directory Application Mode

The following table lists counters that can be used to identify issues that may occur in Active Directory Application Mode (ADAM).

Counter Expected values

AD/AM (ADAM_MSExchange)\LDAP Searches/sec

Shows the rate at which LDAP clients perfom search operations.

Not applicable.

AD/AM (ADAM_MSExchange)\LDAP Writes/sec

Shows the rate at which LDAP clients perform write operations.

Not applicable.

Hub Transport Server EdgeSync Service Counters

The following table lists counters that can be used to identify issues that may occur in the Hub Transport Server EdgeSync service.

Counter Expected values

MSExchangeEdgeSync Job\Edge objects added/sec

Shows the rate of Edge objects added per second by EdgeSync.

Not applicable.

MSExchangeEdgeSync Job\Edge objects deleted/sec

Shows the rate of Edge objects deleted per second by EdgeSync.

Not applicable.

MSExchangeEdgeSync Job\Edge objects updated/sec

Shows the rate of Edge objects updated per second by EdgeSync.

Not applicable.

MSExchangeEdgeSync Job\Scan jobs completed successfully total

Shows the total number of scan jobs completed successfully by EdgeSync.

Not applicable.

MSExchangeEdgeSync Job\Scan jobs failed because could not extend lock total

Shows the total number of EdgeSync scan jobs that failed because EdgeSync could not extend its lease of an Edge Transport server.

Not applicable.

MSExchangeEdgeSync Job\Scan jobs failed because of directory error total

Shows the total number of EdgeSync directory errors.

Not applicable.

MSExchangeEdgeSync Job\Scan jobs failed because could not lock total

Not applicable.

MSExchangeEdgeSync Job\Source objects scanned/sec

Shows the rate of Active Directory objects scanned per second by EdgeSync.

Not applicable.

MSExchangeEdgeSync Job\Target objects scanned/sec

Shows the rate of Edge objects scanned per second by EdgeSync.

Not applicable.

Performance Counters for Load Determination

The following table lists counters that can be used to determine the load that is being placed on the Edge Transport server. The expected values vary depending on the server environment.

To calculate the approximate expected values of these counters, use the following formula:

Queue threshold = (Service level agreement [SLA] in seconds) x (average number of messages handled per second)

Counter Expected values

MSExchangeTransport Queues(_total)\Messages Submitted Per Second

Shows the number of messages in the Submission queue per second.

This counter determines current load, which can then be compared to the historical baselines.

To calculate the approximate expected values of these counters, use the following formula:

Queue threshold = (SLA in seconds) x (average number of messages handled per second)

MSExchangeTransport Queues(_total)\Messages Completed Delivery Per Second

Shows the number of messages that are delivered per second.

Determines current load. Compare values to historical baselines.

To calculate the approximate expected values of these counters, use the following formula:

Queue threshold = (SLA in seconds) x (average number of messages handled per second)

MSExchangeTransport Queues(_total)\Items Submitted Per Second

To calculate the approximate expected values of these counters, use the following formula:

Queue threshold = (SLA in seconds) x (average number of messages handled per second)

MSExchangeTransport Queues(_total)\Items Completed Delivery Per Second

Show the number of items processed to completion. All recipients either succeeded or failed.

To calculate the approximate expected values of these counters, use the following formula:

Queue threshold = (SLA in seconds) x (average number of messages handled per second)

MSExchangeTransport Queues(_total)\Submission Queue Length

Shows the number of messages in the submission queue.

Should not exceed 100.

MSExchangeTransport SmtpReceive(_total)\Average bytes/message

Shows the average number of message bytes per inbound message received.

Determines sizes of messages being received for an Edge receive connector.

To calculate the approximate expected values of these counters, use the following formula:

Queue threshold = (SLA in seconds) x (average number of messages handled per second)

MSExchangeTransport SmtpReceive(_total)\Messages Received/sec

Shows the number of messages received by the SMTP receive connector each second.

Determines current load. Compare values to historical baselines.

To calculate the approximate expected values of these counters, use the following formula:

Queue threshold = (SLA in seconds) x (average number of messages handled per second)

MSExchangeTransport SmtpSend(_total)\Messages Sent/sec

Shows the number of messages sent by the SMTP send connector each second.

Determines current load. Compare values to historical baselines.

To calculate the approximate expected values of these counters, use the following formula:

Queue threshold = (SLA in seconds) x (average number of messages handled per second)

Performance Counters for Agents

Depending on which agents are in service, you can use the following counters to determine the agent performance.

Counter Expected values

MSExchange Extensibility Agents(*)\Average Agent Processing Time (sec)

Shows the average agent processing time in seconds per event.

Should be less than 20 at all times.

Sustained higher latencies may indicate that an agent is not responding.

MSExchange Recipient Filter Agent\Recipients Rejected by Recipient Validation/sec

Show the number of recipients rejected by recipient validation per second.

Not applicable.

MSExchange Recipient Filter Agent\Recipients Rejected by Block List/sec

Show the number of recipients rejected by block list per second.

Not applicable.

\MSExchange Sender Filter Agent\Messages Filtered by Sender Filter/sec

Show the number of messages filtered by the Sender Filter agent per second.

Not applicable.

\MSExchange Sender Id Agent\DNS queries/sec

Shows the number of DNS queries per second performed by the Sender Id agent.

Not applicable.

\MSExchange Attachment Filtering\Messages Attachment Filtered

Shows the number of messages that were blocked, stripped of attachments, or silently deleted (as per configuration) by the attachment filtering agent.

Not applicable.

\MSExchange Attachment Filtering\Messages Filtered/sec

Shows the number of messages per second that the attachment filtering agent blocked, stripped of attachments, or silently deleted. If this rate rises greatly beyond what is “normal” for the Exchange server, it may indicate that the organization is being flooded with malicious e-mail.

Not applicable.

\MSExchange Content Filter Agent\Messages Deleted

Shows the total number of messages that were deleted by Content Filter Agent.

Not applicable.

\MSExchange Content Filter Agent\Messages Quarantined

Shows the total number of messages that were quarantined by Content Filter Agent.

Not applicable.

\MSExchange Content Filter Agent\Messages Rejected

Shows the total number of messages that were rejected by Content Filter Agent.

Not applicable.

\MSExchange Content Filter Agent\Messages that Bypassed Scanning

Shows the total number of messages that bypass scanning.

Not applicable.

\MSExchange Content Filter Agent\Messages Scanned Per Second

Shows the number of messages scanned per second.

Not applicable.

Performance Counters for Spam Confidence Levels

The spam confidence level (SCL) threshold defines when the content filter feature takes a specific action on a specific message, such as rejecting a message or deleting a message. The following table lists counters that can be used to determine the performance of SCLs.

Counter Expected values

MSExchange Content Filter Agent\Messages with SCL 0

MSExchange Content Filter Agent\Messages with SCL 1

MSExchange Content Filter Agent\Messages with SCL 2

MSExchange Content Filter Agent\Messages with SCL 3

MSExchange Content Filter Agent\Messages with SCL 4

MSExchange Content Filter Agent\Messages with SCL 5

MSExchange Content Filter Agent\Messages with SCL 6

MSExchange Content Filter Agent\Messages with SCL 7

MSExchange Content Filter Agent\Messages with SCL 8

MSExchange Content Filter Agent\Messages with SCL 9

Shows the total number of messages assigned to a particular SCL level

Not applicable.

\MSExchange Protocol Analysis Background Agent\Block Senders

Shows the total number of blocked senders.

Not applicable.