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:
- Transport queue
- Transport mail database
- Transport hard disk
- Transport rule
- Edge domain controller connectivity
- Active Directory Application Mode (ADAM)
- Hub Transport Server EdgeSync service
- Load Determining
- Agent
- Spam confidence level
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.
|
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.
|
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. |