Tuesday, March 22, 2011

Performance and Threshold Counters for Exchange Server 2010 - Mailbox Server

Good morning!!
Here the most important performance counters and their thresholds is critical to establishing a performance baseline and monitoring plan to proactively monitor your Exchange 2010 environment and troubleshoot and resolve issues when they arise

back to  Performance and Threshold Counters for Exchange Server 2010 - All in One

Active Database Copy IO Latency Requirements

When these values are exceeded the client experience will degrade (sluggish user experience, message delivery delays etc..)

CountersThresholdTroubleshooting



MSExchange Database\I/O Database Reads (Attached) Average Latency The average value should be below 20 ms.

 Spikes (maximum values) should not be higher than 100 ms.
 Indicates the average time (in milliseconds) to read from the database file.
MSExchange Database\I/O Database Writes (Attached) Average Latency This counter is not a good indicator for client latency since database writes are async.  In general, however this latency should be less than the MSExchange Database\I/O Database Reads (Attached) Average Latency when battery-backed write caching is utilized.
 Indicates the average time (in milliseconds) to write to the database file.
Database\Database Page Fault Stalls/secThis counter should be zero on production servers. If this counter is non-zero, it is an indication that the MSExchange Database\I/O Database Writes (Attached) Average Latency is too high.
Indicates the rate of page faults that cannot be serviced because there are no pages available for allocation from the database cache.



Active Log IO Latency Requirements

When these values are exceeded the client experience will degrade (sluggish user experience, message delivery delays etc..)


MSExchange Database\IO Log Writes Average LatencyThe average value should be below 10 ms.

Spikes (maximum values) should not be higher then 50 ms.
Indicates the average time (in millisecond) to write a log buffer to the active log file.
Database\Log Record Stalls/secThe average value should be below 10 per second.

Spikes (maximum values) should not be higher than 100 per second.
Indicates the number of log records that cannot be added to the log buffers per second because the log buffers are full.
Database\Log Threads WaitingThe average value should be less than 10 threads waiting.
Indicates the number of threads waiting to complete an update of the database by writing their data to the log.


Passive Database Copy IO Latency Requirements

When these values are exceeded the database copy may fall behind by not replaying logs in to the passive database copy fast enough.  Log replication performance may also be impacted.


MSExchange Database\I/O Database Reads (Recovery) Average Latency The average value should be below 200 ms.

Spikes (maximum values) should not be higher than 1000 ms.
 Indicates the average time (in milliseconds) to read from the database file.
MSExchange Database\I/O Database Writes (Recovery) Average LatencyIn general, however this latency should be less than the MSExchange Database\I/O Database Reads (Attached) Average Latency when battery-backed write caching is utilized.
 Indicates the average time (in milliseconds) to write to the database file.
Database\Database Page Fault Stalls/secThis counter should be zero on production servers.  If this counter is non-zero, it is an indication that the MSExchange Database\I/O Database Writes (Attached) Average Latency is too high.
Indicates the rate of page faults that cannot be serviced because there are no pages available for allocation from the database cache.

Replay Log IO Latency Requirements
When these values are exceeded the database copy may fall behind by not replaying logs in to the passive database copy fast enough. Log replication performance may also be impacted.

MSExchange Database\IO Log Read Average LatencyThe average value should be below 200 ms.

Spikes (maximum values) should not be higher than 1000 ms.
Indicates the average time (in millisecond) to read data from a log file. Specific to log replay and database recovery operations.


Information Store RPC Processing Counters
MSExchangeIS\RPC RequestsShould be below 70 at all times.The maximum value is 500 RPC requests that can execute at any designated time before the information store starts rejecting any new connections from clients.
Indicates the overall RPC requests that are currently executing within the information store process.
MSExchangeIS\RPC Averaged LatencyShould not be higher than 10 ms on average.To determine if certain protocols are causing overall RPC latencies, monitor MSExchangeIS Client (*)\RPC Average Latency to separate latencies based on client protocol.
Indicates the RPC latency, in milliseconds, averaged for all operations in the last 1,024 packets.
For information about how clients are affected when overall server RPC averaged latencies increase, see RPC Client Throttling.
MSExchangeIS Mailbox\RPC Averaged LatencyShould not be higher than 10 ms on average.
Indicates the RPC latency, in milliseconds, averaged for all operations in the last 1,024 packets.
For information about how clients are affected when overall server RPC averaged latencies increase, see RPC Client Throttling.
MSExchangeIS Client (*)\RPC Average LatencyShould be less than 10 ms on average.Wide disparities between different client types, such as IMAP4, Outlook Anywhere, or Other Clients (MAPI), can help direct troubleshooting to appropriate subcomponents.
Shows a server RPC latency, in milliseconds, averaged for the past 1,024 packets for a particular client protocol.


RPC Client Throttling Counters

MSExchangeIS\Client: RPCs Failed:Server Too Busy/secShould be 0 at all times.Higher values may indicate RPC threads are exhausted or client throttling is occurring for clients running versions of Outlook earlier than Microsoft Office Outlook 2007.
Shows the client-reported rate of failed RPCs (since the store was started) due to the Server Too Busy ROC error.
MSExchangeIS\Client: RPCs Failed:Server Too BusyShould be 0 at all times.
The client-reported number of failed RPCs (since the store was started) due to the Server Too Busy ROC error.

Message Queuing Counters


Database Counters


MSExchange Database ==> Instances(*)\Log Generation Checkpoint DepthShould be below 500 at all times for the Mailbox server role. A healthy server should indicate between 20 and 30 for each database instance.If checkpoint depth increases continually for a sustained period, this is an indicator of either a long-running transaction (which will impact the version store) or of a bottleneck involving the database disks.
Represents the amount of work in the log file count that will need to be redone or undone to the database files if the process fails.
MSExchange Database(Information Store)\Database Page Fault Stalls/secThis should be 0 at all times.
Shows the rate that database file page requests require of the database cache manager to allocate a new page from the database cache.If this value is non-zero, this indicates that the database is not able to flush dirty pages to the database file fast enough to make pages free for new page allocations.
MSExchange Database(Information Store)\Log Record Stalls/secThe average value should be below 10 per second. Spikes (maximum values) should not be higher than 100 per second.If I/O log write latencies are high, check for RAID5 or sync replication on log devices.
Shows the number of log records that cannot be added to the log buffers per second because the log buffers are full. If this counter is non-zero most of the time, the log buffer size may be a bottleneck.
MSExchange Database(Information Store)\Log Threads WaitingShould be less than 10 on average.Regular spikes concurrent with log record stall spikes indicate that the transaction log disks are a bottleneck.. If the value for log threads waiting is more than the spindles available for the logs, there is a bottleneck on the log disks.
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.
MSExchange Database(Information Store)\Version buckets allocatedShould be less than 12,000 at all times.The maximum default version is 16,384. If version buckets reach 70 percent of maximum, the server is at risk of running out of the version store.
Shows the total number of version buckets allocated.
MSExchange Database Instances(*)\I/O Database Reads Average LatencyShould be 20 ms on average. Should show 50 ms spikes.
Shows the average length of time, in milliseconds, per database read operation.
MSExchange Database Instances(*)\I/O Database Writes Average LatencyShould be 50 ms on average.Spikes of up to 100 ms are acceptable if not accompanied by database page fault stalls.
Shows the average length of time, in milliseconds, per database write operation.
MSExchange Database(Information Store)\Database Cache Size (MB)Maximum value is RAM-2GB (RAM-3GB for servers with sync replication enabled). This and Database Cache Hit % are extremely useful counters for gauging whether a server's performance problems might be resolved by adding more physical memory.Use this counter along with store private bytes to determine if there are store memory leaks. 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), adding more memory to the system may increase performance. If there is ample memory on the system and the database cache size is not growing beyond a certain point, the database cache size may be capped at an artificially low limit. Increasing this limit may increase performance.
Shows the amount of system memory, in megabytes, used by the database cache manager to hold commonly used information from the database files to prevent file operations.
MSExchange Database(Information Store)\Database Cache % HitShould be over 90% for companies with majority online mode clients. Should be over 99% for companies with majority cached mode clients.If the hit ratio is less than these numbers, the database cache may be insufficient.
Shows the percentage of database file page requests that were fulfilled by the database cache without causing a file operation. If this percentage is too low, the database cache size may be too small.
MSExchange Database\Log Bytes Write/secShould be less than 10,000,000 at all times.With each log file being 1,000,000 bytes in size, 10,000,000 bytes/sec would yield 10 logs/sec. This may indicate a large message being sent or a looping message.
Shows the rate bytes are written to the log.


Client-Related Search Counters
MSExchangeIS Mailbox(*)\Slow Findrow RateShould be no more than 10 for any specific mailbox store.Higher values indicate applications are crawling or searching mailboxes, which is affecting server performance. These include desktop search engines, customer relationship management (CRM), or other third-party applications.
Shows the rate at which the slower FindRow needs to be used in the mailbox store.
MSExchangeIS Mailbox(*)\Search Task RateShould be less than 10 at all times.
Shows the number of search tasks created per second.
MSExchangeIS\Slow QP ThreadsShould be less than 10 at all times.
Shows the number of query processor threads currently running queries that are not optimized.
MSExchangeIS\Slow Search ThreadsShould be less than 10 at all times.
Shows the number of search threads currently running queries that are not optimized.


Content Indexing Counters


Process(Microsoft.Exchange.Search.ExSearch)\% Processor timeShould be less than 1% of overall CPU typically and not sustained above 5%. Should be less than 10% of what the store process is during steady state.
Shows the amount of processor time that is currently being consumed by the Exchange Search service.
Process(msftefd*)\%Processor TimeFull crawls will increase overall processing time, but should never exceed overall store CPU capacity. Check throttling counters to determine if throttling is occurring due to server performance bottlenecks.
Shows the amount of processor time that is being consumed to update content indexing within the store process.
MSExchange Search Indices(*)\Recent Average Latency of RPCs Used to Obtain ContentShould coincide with the latencies that Outlook clients are experiencing.
Shows the average latency, in milliseconds, of the most recent RPCs to the Microsoft Exchange Information Store service. These RPCs are used to get content for the filter daemon for the specified database.
MSExchange Search Indices(*)\ Average Document Indexing TimeShould be less than 30 seconds at all time.
Shows the average, in milliseconds, of how long it takes to index documents.
MSExchange Search Indices(*)\Full Crawl Mode StatusIndicates whether this .mdb file is going through a full crawl (value=1) or not (value=0).If CPU resources are high, it is possible content indexing is occurring for a database or set of databases.
Used to determine if a full crawl is occurring for any specified database.


Mailbox Assistant Counters


Process(MSExchangeMailboxAssistants)\%Processor TimeShould be less than 5% of overall CPU capacity.
Shows the amount of processor time that is being consumed by mailbox assistants.
MSExchange Assistants(*)\Events in queueShould be a low value at all times. High values may indicate a performance bottleneck.
Shows the number of events in the in-memory queue waiting to be processed by the assistants.
MSExchange Assistants(*)\Average Event Processing Time in SecondsShould be less than 2 at all times.
Shows the average processing time of the events chosen.


Resource Booking Counters


MSExchange Resource Booking\Average ResourceBooking Processing TimeShould be a low value at all times. High values may indicate a performance bottleneck.
Shows the average time to process an event in the Resource Booking Attendant.
MSExchange Resource Booking\Requests FailedShould be 0 at all times.
Shows the total number of failures that occurred while the Resource Booking Attendant was processing events.


Calendar Attendant Counters


MSExchange Calendar Attendant\Average Calendar Attendant Processing timeShould be a low value at all times. High values may indicate a performance bottleneck.
Shows the average time to process an event in the Calendar Attendant.
MSExchange Calendar Attendant\Requests FailedShould be 0 at all times.
Shows the total number of failures that occurred while the Calendar Attendant was processing events.


Store Client Request Counters


MSExchange Store Interface(_Total)\RPC Latency average (msec)Should be less than 100 ms at all times.
Shows the average latency, in milliseconds, of RPC requests. The average is calculated over all RPCs since exrpc32 was loaded.
MSExchange Store Interface(_Total)\RPC Requests outstandingShould be 0 at all times.
Shows the current number of outstanding RPC requests.
MSExchange Store Interface(*)\RPC Requests failed (%)Should be 0 at all times.
Shows the percentage of failed requests in the total number of RPC requests. Here, failed means the sum of failed with error code plus failed with exception.
MSExchange Store Interface(*)\RPC Slow Requests (%)Should be less than 1 at all times.
Shows the percentage of slow RPC requests among all RPC requests.
A slow RPC request is one that has taken more than 500 ms.
MSExchangeMailSubmission(*)\Hub Servers In RetryShould be 0 at all times.
Shows the number of Hub Transport servers in retry mode.
MSExchangeMailSubmission(*)\Failed Submissions Per SecondShould be 0 at all times.
MSExchangeMailSubmission(*)\Temporary Submission Failures/secShould be 0 at all times.
Shows the number of temporary submission failures per second.
cal Continuous Replication, Cluster Continuous Replication, and Standby Continuous Replication Counters



-Dario

Performance and Threshold Counters for Exchange Server 2010 - Transport Server

Good morning!!
Here the most important performance counters and their thresholds is critical to establishing a performance baseline and monitoring plan to proactively monitor your Exchange 2010 environment and troubleshoot and resolve issues when they arise

back to  Performance and Threshold Counters for Exchange Server 2010 - All in One




Transport Disk Counters

 
Logical/Physical Disk(*)\Avg. Disk sec/ReadShould be less than 20 milliseconds (ms) on average.
Shows the average time, in seconds, of a read of data from the disk.Spikes (maximum values) should not be higher than 50 ms.
Logical/Physical Disk(*)\Avg. Disk sec/WriteShould be less than 20 ms on average.
Shows the average time, in seconds, of a write of data to the disk.Spikes (maximum values) should not be higher than 50 ms.


Transport Queue Length Counters


\MSExchangeTransport Queues(_total)\Aggregate Delivery Queue Length (All Queues)Should be less than 3,000 and not more than 5,000.
Shows the number of messages queued for delivery in all queues.
\MSExchangeTransport Queues(_total)\Active Remote Delivery Queue LengthShould be less than 250 at all times.
Shows the number of messages in the active remote delivery queues.
\MSExchangeTransport Queues(_total)\Active Mailbox Delivery Queue LengthShould be less than 250 at all times.
Shows the number of messages in the active mailbox queues.
\MSExchangeTransport Queues(_total)\Submission Queue LengthShould not exceed 100.
Shows the number of messages in the submission queue.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 LengthShould be less than 250 at all times.
Shows the number of messages in the Drop directory that is used by a Foreign connector.
\MSExchangeTransport Queues(_total)\Retry Mailbox Delivery Queue LengthShould be less than 100 at all times.
Shows the number of messages in a retry state attempting to deliver a message to a remote mailbox.
\MSExchangeTransport Queues(_total)\Retry Non-Smtp Delivery Queue LengthShould not exceed 100.
Shows the number of messages in a retry state in the non-Simple Mail Transfer Protocol (SMTP) gateway delivery queues.
\MSExchangeTransport Queues(_total)\Retry Remote Delivery Queue LengthShould not exceed 100.
Shows the number of messages in a retry state in the remote delivery queues.We recommend that you check the next hop to determine the causes for queuing.
\MSExchangeTransport Queues(_total)\Unreachable Queue LengthShould not exceed 100.
Shows the number of messages in the Unreachable queue.
\MSExchangeTransport Queues(_total)\Largest Delivery Queue LengthShould be less than 200 for the Edge Transport and Hub Transport server roles.
Shows the number of messages in the largest delivery queues.
\MSExchangeTransport Queues(_total)\Poison Queue LengthShould be 0 at all times.
Shows the number of messages in the poison message queue.


Transport Database Counters


MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\I/O Log Writes/secNot Applicable
Shows the rate of log file write operations completed.
Determines the current load. Compare values to historical baselines.
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\I/O Log Reads/secNot Applicable
Shows the rate of log file read operations completed.
Determines the current load. Compare values to historical baselines.
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Generation Checkpoint DepthShould be less than 1,000 at all times.
Represents the amount of work, in count of log files, that need to be redone or undone to the database files if the process fails.
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Version buckets allocatedShould be less than 200 at all times.
Total number of version buckets allocated
Shows the default backpressure values as listed in the edgetransport.exe.config file.
Exchange 2007 release to manufacturing (RTM) version – Medium=60, High =100
Exchange 2007 SP1 version – Medium=120, High=200
For more database cache size guidance, see New maximum database cache size guidance for Exchange 2007 Hub Transport server role.
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\I/O Database Reads/secNot Applicable
Shows the rate of database read operations completed.
Determines the current load. Compare values to historical baselines.
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\I/O Database Writes/secNot Applicable
Shows the rate of database write operations completed.
Determines the current load. Compare values to historical baselines.
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Record Stalls/secShould be less than 10 per second on average.
Shows the number of log records that cannot be added to the log buffers per second because they are full. If this counter is non-zero most of the time, the log buffer size may be a bottleneck.Spikes (maximum values) should not be greater than 100 per second.
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Threads WaitingShould be less than 10 threads waiting on average.
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.


Extensibility Agent Counters


MSExchange Extensibility Agents(*)\Average Agent Processing Time (sec)Should be less than 20 at all times.
Shows the average agent processing time in seconds per event.Sustained higher latencies may indicate a hung agent.
MSExchange Extensibility Agents(*)\Total Agent InvocationsNot Applicable
Shows the total number of invocations since the last restart.
Shows the current invocation rate.


-Dario




CountersThreshold

Performance and Threshold Counters for Exchange Server 2010 - Mailbox Load Based

Good morning!!
Here the most important performance counters and their thresholds is critical to establishing a performance baseline and monitoring plan to proactively monitor your Exchange 2010 environment and troubleshoot and resolve issues when they arise

back to  Performance and Threshold Counters for Exchange Server 2010 - All in One


Client Activity Counters

MSExchangeIS\RPC Client Backoff/secNot applicable.
Shows the rate that the server notifies the client to back off.
Indicates the rate at which client backoffs are occurring.
Higher values may indicate that the server may be incurring a higher load resulting in an increase in overall averaged RPC latencies, causing client throttling to occur.
This can also occur when certain client user actions are being performed. Depending on what the client is doing and the rate at which RPC operations are occurring, it may be normal to see backoffs occurring.
MSExchangeIS\Client: RPCs Failed:Server Too Busy/secShould be 0 at all times.
Shows the client-reported rate of failed RPCs (since the store was started) due to the Server Too Busy ROC error.Higher values may indicate RPC threads are exhausted or client throttling is occurring for clients running versions of Outlook earlier than Microsoft Office Outlook 2007.
MSExchangeIS\Client: RPCs Failed:Server Too BusyShould be 0 at all times.
The client-reported number of failed RPCs (since the store was started) due to the Server Too Busy ROC error.


Information Store Counters for Determining User Load


MSExchangeIS Client(*)\RPC Operations/secNot applicable.
Shows what client protocol is performing an excessive amount of RPC Operations/sec.
High IMAP4, POP3, or Outlook Anywhere latency can indicate problems with Client Access servers rather than Mailbox servers. This is especially true when Other Clients (which includes MAPI) latency is lower in comparison.
In some instances, high IMAP latencies could indicate a bottleneck on the Mailbox server in addition to the latencies that the Client Access server is experiencing.
MSExchangeIS Client (*)\RPC Average LatencyShould be less than 10 ms on average.
Wide disparities between different client types, such as IMAP4, Outlook Anywhere, or Other Clients (MAPI), can help direct troubleshooting to appropriate subcomponents.
MSExchangeIS Client(*)\JET Log Records/secNot applicable.
Shows the rate that database log records are generated while processing requests for the client.
Used to determine current load.
MSExchangeIS Client(*)\JET Pages Read/secNot applicable.
Shows the rate that database pages are read from disk while processing requests for the client.
Used to determine current load.
MSExchangeIS Client(*)\Directory Access: LDAP Reads/secNot applicable.
Shows the current rate that the LDAP reads occur while processing requests for the client.
Used to determine the current LDAP read rate per protocol.
MSExchangeIS Client(*)\Directory Access: LDAP Searches/secNot applicable.
Shows the current rate that the LDAP searches occur while processing requests for the client.
Used to determine the current LDAP search rate per protocol.
MSExchangeIS Mailbox(_Total)\Messages Delivered/secNot applicable.
Shows the rate that messages are delivered to all recipients.
Indicates current message delivery rate to the store.
MSExchangeIS Mailbox(_Total)\Messages Sent/secNot applicable.
Shows the rate that messages are sent to transport.
Used to determine current messages sent to transport.
MSExchangeIS Mailbox(_Total)\Messages Submitted/secNot applicable.
Shows the rate that messages are submitted by clients.
Used to determine current rate that messages are being submitted by clients.
MSExchangeIS\User CountNot applicable.
Shows the number of users connected to the information store.
Used to determine current user load.
MSExchangeIS Public(_Total)\Replication Receive Queue SizeShould be less than 100 at all times.
Shows the number of replication messages waiting to be processed.This value should return to a minimum value between replication intervals.


Mailbox Assistant Counters


MSExchange Assistants(*)\Mailboxes Processed/secNot applicable.
Shows the rate of mailboxes processed by time-based assistants per second.
Determines current load statistics for this counter.
MSExchange Assistants(*)\Events Polled/secNot applicable.
Shows the number of events polled per second.
Determines current load statistics for this counter.



-Dario

Performance and Threshold Counters for Exchange Server 2010 - Transport Load Based

Good morning!!
Here the most important performance counters and their thresholds is critical to establishing a performance baseline and monitoring plan to proactively monitor your Exchange 2010 environment and troubleshoot and resolve issues when they arise

back to  Performance and Threshold Counters for Exchange Server 2010 - All in One


Load Determining Counters

\MSExchangeTransport Queues(_total)\Messages Submitted Per Second
Shows the number of messages that have been queued in the Submission queue per second.
Determines current load. Compare values to historical baselines.
\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.
\MSExchange Store Driver(_total)\Inbound: LocalDeliveryCallsPerSecond
Shows the number of local delivery attempts per second.
Determines current load. Compare values to historical baselines.
\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.
\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.
\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.
\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.
\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.
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.
MSExchangeTransport Queues(_total)\Messages Queued for Delivery Per Second
Shows the number of messages that have been queued for delivery per second.
Determines current load. Compare values to historical baselines.
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.


-Dario