To quickly diagnose and resolve performance bottlenecks in Exchange server, you should try to know every component within the application and how they impact performance. Continuously monitoring Exchange will get you familiarized with each metric. In turn, you will be more aware of the kind of thresholds that you can set to optimize alerts. On the other hand, Exchange performance bottlenecks can occur due to various reasons, such as a heavy server load, high rate of incoming mails, MAPI operations, POP3 requests, and so on.

 

You can start by looking at RPC load – determine if there’s high RPC per second. You should then drill down further and see if the RPC load is coming in from a single user or if it’s from a string of users. Mailbox size is an area that you should constantly monitor because it can affect server performance. Whenever there’s an increase in folder size or mailbox size, there’s an increase in CPU and disk usage which brings down server performance. Typically, when there’s a heavy load on the server or applications, it usually leads to bottlenecks which occurs in one of the following:

  • Database Capacity: Exchange bottlenecks can occur with the email database capacity.  You can set the size of the database capacity it can grow faster than you expected. Therefore, you should regularly check the email database because if it reaches capacity, then all the mailboxes in that database will have issues.
  • Disk: A bottleneck in the disk occurs when there’s high read and write latencies in the database drives and storage logs. The best way to go about diagnosing this is to look at a list of all applications that are utilizing the same disk. Since users are constantly performing a variety of operations in Exchange, it utilizes the allocated disk resource. When other applications are hogging the resource it leads to a bottleneck. To avoid this, you can start monitoring the I/O database read/write latency and I/O log read/write latency counters.
  • CPU: CPU performance can be affected when you have heavy and critical applications running side-by-side. If the CPU is over 80% or 90% then there’s definitely a bottleneck. Look at what processes are running and how much CPU they’re hogging. One way to fix this is by simply adding additional CPU to the existing capacity, or consider moving Exchange to another dedicated server with adequate resources. In addition, you should monitor the % processor time, % user time, and processor queue length counters.
  • Memory: Sufficient memory must be available to support several user logons simultaneously. If there’s insufficient memory and with several logons, a bottleneck will occur. In order to reduce logons per user, having lesser client applications per user and turning off several third-party plugins will free up memory resources. Monitoring total memory, memory cache, and memory usage % will be helpful.
  • Configuration: Setting up Exchange server with the right configuration is key. For example, you should ensure that database files, temp file, transaction logs, etc. are not shared with other resources. These are critical to Exchange performance and availability. Another tip to keep in mind is to not have scheduled maintenance during business hours. When one of these is misconfigured, end-users will be affected.
  • Hardware: Insufficient memory, storage disks, and underperforming CPU should be monitored regularly and upgraded if needed.  A hardware failure will affect the Exchange server and applications running in the server. Other applications depending on a shared resource will also be impacted when a hardware resource has contention issues.


Checking these performance counters for bottlenecks is recommended because you can evaluate performance at all times. Your monitoring software will provide a visual representation of application performance in the form of graphs, charts, or tables for specific time intervals. Receiving alerts will tell you if there’s a performance issue. Once notified, you can immediately start troubleshooting as opposed to waiting for a user to raise a help desk ticket.