Active Sync Performance Test

Exchange ActiveSync is a Microsoft Exchange synchronization protocol that's optimized to work together with high-latency and low-bandwidth networks. The protocol, based on HTTP and XML, lets mobile phones access an organization's information on a server that's running Microsoft Exchange. Exchange ActiveSync enables mobile phone users to access their email, calendar, contacts, and tasks, and to continue to access this information while they're working offline. In an era where enterprises offer flexible work options to their employees – eg., work-from-home, flex-work, etc. – it is Exchange ActiveSync that helps users to work productively and in an uninterrupted manner, , even when away from the work place. Naturally therefore, if ActiveSync slows down, user productivity is bound to be affected and help desk is sure to be at the receiving end of a barrage of support calls from frustrated users! If such a situation is to be avoided, help desk needs to keep track of how quickly the ActiveSync server processes user requests, proactively detect potential slowdowns, accurately pinpoint the cause of the slowdown, and promptly attend to it. This is where the Active Sync Performance test helps.

This test tracks the synchronization and ping requests to the ActiveSync server, checks how quickly ActiveSync services these requests, counts the requests pending processing, and in this way, points administrators to probable processing bottlenecks on the server. The test also measures the time spent by the requests at various stages of processing, and thus precisely pinpoints where the bottleneck lies – did ping/hanging sync take too long? did LDAP calls to the domain controller take too long? was RDP access to the mailbox server slow? were issues in proxying delaying request processing?

Target of the test : An Exchange 2013/2016 server

 Agent deploying the test : An internal agent

Outputs of the test : One set of results for the Exchange 2013/2016 server being monitored

Configurable parameters for the test
  1. Test period - How often should the test be executed
  2. Host - The host for which the test is to be configured.
  3. port – The port at which the host listens.
Measurements made by the test
Measurement Description Measurement Unit Interpretation

Average hang time:

Indicates the average time that elapsed waiting for Ping and Hanging Sync requests to complete.

Secs

Direct Push is the method by which Exchange mailbox data is kept constantly up to date on a mobile device.

Mobile devices that support Direct Push issue a long-lived HTTPS request to the Exchange server. If a new email message arrives or any other changes occur within the lifespan of the HTTPS request, the Exchange server issues a response to the device that states that changes have occurred and the device should initiate synchronization with the Exchange server. The device then issues a synchronization request to the server. This is called a ‘Ping Sync’ request.

Newer versions of ActiveSync introduced certain variations to the Direct Push technology. In the new Direct Push functionality, the mobile device sends a long-lived HTTPS request known as a Hanging Sync request to the Exchange server. The Hanging Sync request parks itself on the ActiveSync server. When a new message arrives on the server, the server completes the Sync request and pushes the message directly to the device. This behavior helps reduce bandwidth and may help optimize battery consumption of the mobile device.

Ideally, the value of this measure should be low. A high value could indicate that the server is taking too long to respond to Ping and Hanging Sync requests. In the event of a synchronization slowdown, you may want to compare the value of this measure with that of the Average LDAP latency, Average request time, and Average RDP latency measures to know where synchronization is bottlenecked – at the ActiveSync server waiting for Ping/Hanging requests to complete? at the domain controller? or at the mailbox server? 

Average LDAP latency:

Indicates the average time that it takes for an LDAP call to return results from a domain controller, averaged over LDAP calls in the last minute.

Secs

Ideally, the value of this measure should be low. A high value could indicate that the domain controller is taking too long to respond to LDAP calls. This can delay user authentication and slow down synchronization. In the event of a synchronization slowdown therefore, you may want to compare the value of this measure with that of the Average hang time, Average request time, and Average RDP latency measures to know where synchronization is bottlenecked – at the ActiveSync server waiting for Ping/Hanging requests to complete? at the domain controller? or at the mailbox server? 

Average request time:

Indicates the average time that elapsed waiting for a sync request to complete.

.

Secs

This measure includes Ping Request Time, which can increase the general response time.

A high value for this measure could indicate that the ActiveSync server is unable to process requests quickly. To know why, you may want to compare the values of the Average hang time, Average LDAP latency, and Average RDP latency measures. This comparison will reveal where synchronization is bottlenecked – at the ActiveSync server waiting for Ping/Hanging requests to complete? at the domain controller? or at the mailbox server? 

Average RPC latency:

Indicates the average time that it takes for a remote procedure call to return results from a Mailbox server, averaged over RPC calls in the last minute.

Secs

Ideally, the value of this measure should be less than 25 milliseconds – i.e., 0.025 seconds. The latency represents how long it takes from the time the Store.exe process received the packet to the time it returned the packet. An increase in latency may be caused by the the following:

  • An increase in RPC load
  • A bottleneck in one or more server resources
  • Hardware malfunction or configuration error

If the ActiveSync server is taking an unusually long time to process sync requests, then, you may want to compare the value of this measure with that of the Average hang time, Average request time, and Average LDAP latency measures to know where synchronization is bottlenecked - at the ActiveSync server waiting for Ping/Hanging requests to complete? at the domain controller? or at the mailbox server? 

Current HTTP requests received from ASP .NET:

Indicates the current number of HTTP requests received from the client via ASP .NET.

Number

This is a good indicator of the current workload of Exchange ActiveSync.

If the server receives too many sync requests from users, it could result in a situation where server runs out of resources, effectively causing a ‘denial of service’ (DOS) attack. The worst outcome of such a situation is that the server also becomes unavailable to other users who may not be using EAS protocol to connect. If this is to be avoided, then the variations to the value of this measure should be closely tracked and administrators alerted to sudden/steady increases in this measure value.  

Incoming proxy requests:

Indicates the total number of HTTP requests received from ASP.NET and proxied to another Exchange ActiveSync server since the service was restarted. 

Number

A computer that is running Exchange 2013/2016 that has the Client Access server role installed can act as a proxy for other Client Access servers within the organization. If a user sends a sync request to the CAS from a mobile device, then that CAS will query the Active Directory directory service to determine the location of the user's mailbox. If the user’s mailbox is found to be in a different Active Directory site than the CAS, then this CAS will check whether any other CAS exists in the same AD site as that of the user’s mailbox. If such a CAS is found, then the CAS that received the user request will check whether the CAS that is close to the user’s mailbox has the InternalURL property configured and if the authentication method is Integrated Windows authentication. If so, then the first CAS will proxy the request to the InternalURL of the CAS close to the user’s mailbox.

The Incoming proxy requests measure indicates the number of requests to the monitored CAS server that it proxied to another CAS server.

The Outgoing proxy requests measure indicates the number of requests to another CAS server that were proxied to the monitored server.

Both measures are indicators of the workload of the CAS server. 

Outgoing proxy requests:

Indicates the total number of HTTP requests received by ASP.NET from another Exchange ActiveSync server since the service was restarted. 

Number

Ping commands pending on the server:

Indicates the number of ping commands that are currently pending on the server.

Number

The Ping command is used to request that the server monitor specified folders for changes that would require the client to resynchronize.

A consistent rise in this value could indicate a processing bottleneck on the server.

Rate of HTTP requests received from the client:

Indicates the rate at which HTTP requests were received from the client via ASP .NET.

Reqs/Sec

 

Sync commands pending on the server:

Indicates the number of sync commands that are currently pending on the server.

Number

The Sync command synchronizes changes in a collection between the client and the server.

A consistent rise in this value could indicate a processing bottleneck on the server. You may want to check the value of the Sync commands processed rate measure to corroborate this finding.

Sync commands processed rate:

Indicates the number of sync commands that were processed by second.

Commands/Sec

A consistent dip in this measure is a cause for concern.

If the value of the Sync commands pending on the server measure has been increasing steadily, you may want to check the variations to this measure to verify if indeed the server is experiencing a processing slowdown.

Wrong CAS proxy requests:

Indicates the total number of HTTP requests that were received by ASP.NET since the service was restarted that can't be proxied to another Client Access server because the user has to reconfigure the device to point to that Client Access server directly.

Number

Ideally, the value of this measure should be 0. A non-zero value is indicative of ActiveSync failure due to wrong proxy configuration.

One of the reasons that such a problem may occur is when a user mailbox and a user ID are moved to another AD site and then brought back to the original AD site. When this happens, in more cases than one, Active Sync will fail, because the redirect URL would still be referring to the old CAS server.