5

One CAS server in our array has nearly 90% of its 4 CPUs used. The remaining CAS servers are at 30 percent.

How should I investigate what is causing this increase?

Below is a graph of:

  • Six (6) CAS servers serving 3,000 users in RPC/HTTPS (outlook anywhere) mode.
  • Windows 2008 R2
  • Recently upgraded to Exchange 2010 SP1 RU6 (same behavior on RU3)
  • Each CAS server has Four (4) Virtual CPUs

Points of interest

  • Since we asked our end users to configured Activesync against a different URL, we set up a dedicated VIP on the load balancer, and isolated the bottom two CAS servers. Doing this was easy... we changed the public DNS entry to facilitate the isolation. (I wish MSFT Best Practices would encourage an isolated URL for Activesync deployments)
  • The high CPU in black is coming from ActiveSync.
  • The green spike is from RPC Client Access service.

enter image description here

I ran MSFT's DebugDiag on the servers and don't know if that is the right tool to use, or what to do with some of the more advanced results. Any tips are appreciated.

4 Answers 4

3

See if this helps: http://social.technet.microsoft.com/Forums/nl/exchange2010/thread/55da7565-abc1-4c40-bade-7d3dc420de2e. Lots of possible causes are discussed there.

1
  • Thanks.. all public folder access is done locally (in the same site)... also will re read that to see what else may apply Feb 14, 2012 at 1:26
3

I've discovered the root cause(s) and will update them here:

High CAS CPU was caused by

  • BES servers. This was sporadic and variable

  • Journaling. Our archiving processes was using 8000 MAPI connections to a server, and caused high CPU

  • Outlook users on NAT. Many people using outlook anywhere were behind a NAT. Our load balancer load balanced them by IP rather than cookie (as 2010 sp1+ supports it)

  • Activesync Calendar issue. iPhones were hammering our server with calendar updates that were rejected due to an Apple programming bug. We stopped the ActiveSync app pool and updated autodiscover to point all Activesync users to a dedicated CAS Array

So in the end the solution was to create a dedicated CAS array for Jornaling, Activesync, and Outlook Anywhere traffic. We co-located Journaling + BES onto the same array. This was a poor mans QOS and fault isolation for each service.

The tool we used to identify the high CPU culprit was "Exmon", however just know that running Exmon will cause trace files to appear in \program files(x86)\Exmon. If these files aren't deleted they may fill the drive.

1

Process Explorer can help break down exactly what the process is doing.

Be warned though, procexp.exe can use quite a bit of CPU itself.

1

Do you have users with iPhone's, iPad's, etc?
See below if you do.
We ran into this at work.

http://www.networkworld.com/news/2013/021313-byod-ios-exchange-servers-266683.html iOS devices hobble Exchange servers when they synch

AND

(Linked in article) http://support.microsoft.com/kb/2814847?wa=wsignin1.0 Rapid growth in transaction logs, CPU use, and memory consumption in Exchange Server 2010 when a user syncs a mailbox by using an iOS 6.1 or 6.1.1-based device

1
  • Please give a summary of what is there, the link might go dead.
    – vonbrand
    Feb 20, 2013 at 12:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .