Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2

Topic Last Modified: 2012-07-23

This topic provides information about counters relevant to the Hub Transport and Edge Transport server roles in Microsoft Exchange Server 2010. You can use Performance Monitor (perfmon.exe) to monitor these counters. For more information, see Performance Monitor Getting Started Guide. For information about other counters relevant to Exchange 2010, see Performance and Scalability Counters and Thresholds.

Transport Disk Counters

The following table shows transport disk counters.

Counter Description Threshold

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

Shows the average time, in seconds, of a read of data from the disk.

Should be less than 20 milliseconds (ms) on average. Spikes (maximum values) shouldn't be higher than 50 ms.

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

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

Should be less than 20 ms on average. Spikes (maximum values) shouldn't be higher than 50 ms.

Transport Queue Length Counters

The following table shows transport queue length counters.

Counter Description Threshold

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

Shows 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

Shows the number of messages in the active remote delivery queues.

Should be less than 250 at all times.

\MSExchangeTransport Queues(_total)\Active Mailbox Delivery Queue Length

Shows the number of messages in the active mailbox queues.

Should be less than 250 at all times.

\MSExchangeTransport Queues(_total)\Submission Queue Length

Shows the number of messages in the submission queue.

Shouldn't exceed 100. If sustained high values are occurring, investigate Active Directory and Mailbox servers for bottlenecks or performance-related issues.

\MSExchangeTransport Queues(_total)\Active Non-Smtp Delivery Queue Length

Shows the number of messages in the drop directory used by a Foreign connector.

Should be less than 250 at all times.

\MSExchangeTransport Queues(_total)\Retry Mailbox Delivery Queue Length

Shows the number of messages in a retry state attempting to deliver a message to a remote mailbox.

Should be less than 100 at all times.

\MSExchangeTransport Queues(_total)\Retry Non-Smtp Delivery Queue Length

Shows the number of messages in a retry state in the non-SMTP gateway delivery queues.

Shouldn't exceed 100.

\MSExchangeTransport Queues(_total)\Retry Remote Delivery Queue Length

Shows the number of messages in a retry state in the remote delivery queues.

Shouldn't exceed 100. We recommend that you check the next hop to determine the causes for queuing.

\MSExchangeTransport Queues(_total)\Unreachable Queue Length

Shows the number of messages in the Unreachable queue.

Shouldn't exceed 100.

\MSExchangeTransport Queues(_total)\Largest Delivery Queue Length

Shows the number of messages in the largest delivery queues.

Should be less than 200 for the Edge Transport and Hub Transport server roles.

\MSExchangeTransport Queues(_total)\Poison Queue Length

Shows the number of messages in the poison message queue.

Should be 0 at all times.

Transport Dumpster Counters

The following table shows transport dumpster counters.

Counter Description Threshold

\MSExchangeTransport Dumpster\Dumpster Size

Shows the total size (in bytes) of mail items currently in the transport dumpster on this server.

Not applicable.

\MSExchangeTransport Dumpster\Dumpster Inserts/sec

Shows the rate at which items are inserted into the transport dumpster on this server. Determines the current rate of transport dumpster inserts.

Not applicable.

\MSExchangeTransport Dumpster\Dumpster Item Count

Shows the total number of mail items currently in the transport dumpster on this server. Shows the current number of items being held in the transport dumpster.

Not applicable.

\MSExchangeTransport Dumpster\Dumpster Deletes/sec

Shows the rate at which items are deleted from the transport dumpster on this server. Determines the current rate of transport dumpster deletions.

Not applicable.

Transport Database Counters

The following table shows transport database counters.

Counter Description Threshold

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\I/O Log Writes/sec

Shows the rate of log file write operations completed. Determines the current load. Compare values to historical baselines.

Not applicable.

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\I/O Log Reads/sec

Shows the rate of log file read operations completed. Determines the current load. Compare values to historical baselines.

Not applicable.

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Generation Checkpoint Depth

Represents the amount of work (in count of log files) that needs to be redone or undone to the database files if the process fails.

Not applicable.

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Version buckets allocated

Total number of version buckets allocated. Shows the default backpressure values as listed in the edgetransport.exe.config file.

Should be less than 200 at all times.

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\I/O Database Reads/sec

Shows the rate of database read operations completed. Determines the current load. Compare values to historical baselines.

Not applicable.

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\I/O Database Writes/sec

Shows the rate of database write operations completed. Determines the current load. Compare values to historical baselines.

Not applicable.

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Record Stalls/sec

Shows the number of log records that can't be added to the log buffers per second because they are full. If this counter is nonzero most of the time, the log buffer size may be a bottleneck.

Should be less than 10 per second on average. Spikes (maximum values) shouldn't be greater than 100 per second.

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\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.

Extensibility Agent Counters

The following table shows extensibility agent counters.

Counter Description Threshold

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 a hung agent.

MSExchange Extensibility Agents(*)\Total Agent Invocations

Shows the total number of invocations since the last restart. Shows the current invocation rate.

Not applicable.

Transport Load Assessment Counters

The following table shows transport load assessment counters.

Counter Description Threshold

\MSExchangeTransport Queues(_total)\Messages Submitted Per Second

Shows the number of messages queued in the Submission queue per second. Determines current load. Compare values to historical baselines.

Not applicable.

\MSExchangeTransport Queues(_total)\Messages Completed Delivery Per Second

Shows the number of messages delivered per second. Determines current load. Compare values to historical baselines.

Not applicable.

\MSExchange Store Driver(_total)\Inbound: LocalDeliveryCallsPerSecond

Shows the number of local delivery attempts per second. Determines current load. Compare values to historical baselines.

Not applicable.

\MSExchange Store Driver(_total)\Outbound: Submitted Mail Items Per Second

Shows the number of mail items per second being submitted. Determines current load. Compare values to historical baselines.

Not applicable.

\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 SMTP receive connector.

Not applicable.

\MSExchangeTransport SmtpReceive(_total)\Messages Received/sec

Shows the number of messages received by the SMTP server each second. Determines current load. Compare values to historical baselines.

Not applicable.

\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.

Not applicable.

\MSExchange Store Driver(_total)\ Inbound: MessageDeliveryAttemptsPerSecond

Shows the number of attempts for delivering transport mail items per second. Determines current load. Compare values to historical baselines.

Not applicable.

MSExchange Store Driver(_total)\Inbound: Recipients Delivered Per Second

Shows the number of inbound recipients delivered per second. Determines current load. Compare values to historical baselines.

Not applicable.

MSExchangeTransport Queues(_total)\Messages Queued for Delivery Per Second

Shows the number of messages queued for delivery per second. Determines current load. Compare values to historical baselines.

Not applicable.

MSExchangeTransport Queues(_total)\Messages Completed Delivery Per Second

Shows the number of messages delivered per second. Determines current load. Compare values to historical baselines.

Not applicable.