Topic Last Modified: 2006-02-24
The Microsoft® Exchange Server Analyzer Tool has identified that your server is experiencing a CPU bottleneck. Your server's CPU utilization has exceeded a recommended threshold. Counters that are used to identify processor bottlenecks or issues with processor utilization include:
- Context Switches/sec performance counter under the
System performance object.
- % Processor Time (_Total) performance counter under the
Processor performance object.
- Processor Queue Length performance counter under the
System performance object.
Detecting a Processor Bottleneck
If one of the following conditions is met, the Exchange Server Analyzer detects a bottleneck:
- The average of the % Processor Time (_Total) performance
counter under the Process performance object is greater than
70 percent.
- The maximum of the % Processor Time (_Total) performance
counter under the Process performance object is greater than
90 percent.
- The average of Context Switches/second performance
counter under the System performance object is greater than
20,000.
- The Processor Queue Length performance counter under the
System performance object is greater than two.
- This % Processor Time (_Total) performance counter under
the Process performance object provides overall utilization
of the processors. The average CPU utilization should always be
below 80 percent. Higher averages indicate a processor bottleneck.
If the average processor utilization is higher than 70 percent, a
warning is displayed. Frequent spikes in processor time above 90
percent also indicate a processor bottleneck.
- The Processor Queue Length performance counter under the
System performance object indicates the number of threads in
the processor queue. There is a single queue for processor time,
even on computers with multiple processors. A number higher than
two indicates that threads are waiting for processor time and that
there is a processor bottleneck.
Determining Sources of Processor Load
If a processor bottleneck is located, you must determine from where most of the CPU utilization is originating. On an Exchange back-end server, most of the CPU utilization should be originating from the Store.exe process. If more than 20 percent of the CPU utilization is coming from a process other than Store.exe, it is important that you find out what other processes are expending CPU utilization.
If the CPU utilization for the processes listed in the table below is higher than the threshold, the Exchange Server Analyzer displays an error.
Process | Threshold for %Processor Time performance counter under the Process performance object |
---|---|
Store |
90% |
Inetinfo |
20% |
Emsmts |
40% |
Lsass |
40% |
System |
40% |
Mad |
40% |
ExMGMT |
20% |
W3WP |
40% |
The Exchange Server Analyzer also measures the difference between the idle processor time that is measured by the %Processor Time performance counter (Idle instance) and the %Processor Time performance counter (_Total instance) under the Process performance object. On a healthy Exchange back-end server, at least 70 percent of the processor time that is in use should be in the Store.exe process.
The Exchange Server Analyzer displays an error under the following conditions:
- If the amount of processor time that is not spent in the
processes related to the Exchange server (Store.exe, inetinfo.exe,
emsmta.exe, lsass.exe, w3wp.exe, exmgmt.exe or mad.exe processes)
is higher than 35 percent.
- If the non-Exchange-related processor time is greater than 20
percent.
- If there is a processor bottleneck, and less than 70 percent of
the processor time is in the Store.exe process.
In all of these cases, it is recommended that you find out what other processes are expending your server's CPU time.
Common Causes of Processor Bottlenecks on Back-End Servers
There are many possible causes for a performance bottleneck, including:
- Other applications on the server expending CPU utilization
- High RPC rates
- Distribution list expansion
- Backup and maintenance running during peak operating hours
- Conversion of message content in messages caused by:
- Multiple protocols running (for example, HTTP, POP3, IMAP4,
Microsoft Office Outlook®)
- Outlook 2000 or earlier versions that use offline folders (.ost
files)
- Multiple protocols running (for example, HTTP, POP3, IMAP4,
Microsoft Office Outlook®)
Removing Processor Bottlenecks
There are many ways to remove processor bottlenecks from your Exchange server.
To remove processor bottlenecks-
If possible, add more or faster processors to the server. Also, enable hyper-threading if it is supported by the processors. You can enable hyper-threading by configuring the system BIOS. For more information, see your computer manufacturer's help documentation.
-
If increasing the processing power is not a viable option, you must reduce the load on the processors. To reduce the overall impact on the server, it is important to make sure that I/O-intensive, CPU-intensive, or memory-consuming tasks occur outside normal operation hours.
First, identify which applications or tasks are causing load on the server. If a non-Exchange application is not important to that server, run that application on another server. If possible, move server roles to other computers as well. For example, if the Inetinfo process is consuming a lot of CPU utilization, consider adding front-end servers to assume responsibility of the protocol work that Inetinfo performs. You can also move public folder access to a dedicated public folder server. Finally, if a server performs a lot of distribution list expansions, you can reduce CPU utilization by moving distribution list expansion to a dedicated distribution-list expansion server.
-
Make sure that CPU-intensive tasks (such as backup and maintenance tasks) occur during off-peak hours. Also make sure and that these tasks are performed in a staged manner. Staging a task means setting different start times, and preferably end times, for each task. Staging the maintenance and backup of databases or storage groups also lessens the effect of these resource-intensive tasks.
-
If you have removed all optional sources of load, and the CPU utilization is still too high, you must move users to another server to reduce the load. For more information, see Move User Mailboxes to Another Server
For More Information
- For more information about Exchange Server performance, see the
Exchange Server 2003 Performance and Scalability Guide
(http://go.microsoft.com/fwlink/?LinkId=47576).
- For more information about troubleshooting Exchange Server
performance issues, see Troubleshooting Microsoft Exchange
Server 2003 Performance (http://go.microsoft.com/fwlink/?LinkId=47588).
- For more information on moving user mailboxes to reduce server
load, see Move
User Mailboxes to Another Server