For links to articles, blog posts, and tools related to Exchange Performance, check out http://aka.ms/exchangeperf.  

 

This script needs to be executed from the Exchange 2013 Management Shell.


This script takes the current hardware configuration, user profile information from the Exchange 2013 Sizing Calculator, and the current number of active and passive mailboxes on the server and attempts to give an expected average peak CPU utilization.  It uses the formulas in the "Ask the Perf Guy: Sizing Exchange 2013 Deployment" blog located here:

http://blogs.technet.com/b/exchange/archive/2013/05/06/ask-the-perf-guy-sizing-exchange-2013-deployments.aspx


This script will give you the estimated CPU utilization during normal peak operation.  Take the overall system processor utilization % of all Exchange processes during the busiest 4 hour window of the day and it should be within 5-10% of the results of this script.  If CPU is running high but this script predicts it will run high, you may have a load or a sizing issue.  If not, you may be dealing with another issue such as sudden or unexpected client activity.  You can also use this script to come up with an accurate mutliplier for higher than expected load from external or 3rd party products.


If you are importing results from the sizing calculator you will need to run the script from a workstation with the Exchange 2013 Management Shell and Microsoft Excel installed.  If you are not importing data from the sizing calculator you may specify the values manually.  As with the calculator you can specify up to 4 Tiers or "Profiles".  If you specify more than one profile you will need to give the percentage of the total mailboxes that each profile contains.  For example, say you have 5000 Profile 1 mailboxes and 15000 Profile 2 mailboxes.  The percent of Profile 1 mailboxes would be 25 and Profile 2 would be 75.


Examples:

Run against a single remote Exchange server using calculator results with verbose logging
.\SizingChecker.ps1 -CalculatorFile E:\Files\calculator.xlsm -Server SERVERNAME -Verbose


Run against a single remote Exchange server using calculator results with verbose logging.
.\SizingChecker.ps1 -Server SERVERNAME -MailboxProfile1 50 -MailboxProfile2 150 -Profile1Percentage 25 -Profile2Percentage 75 -MailboxMultiplier1 1.0 -MailboxMultiplier2 1.2 -Profile1MultiplierPercentage 100 -Profile2MultiplierPercentage 35 -SPECRating 41.5625


The example above is based on two profiles.
 

System SPECint 2006 rating: 665

Number of physical cores: 16

Per-Core SPEC rating (total SPEC rating/physical cores): 41.5625

 

Profile 1:Messages/day: 50 messages

Mailboxes: 5000

Multiplier 1.0  

% of mailboxes to apply multiplier to: 100

 

Profile 2:

Messages/day: 150 messages

Mailboxes: 15000

Multiplier: 1.2

% of mailboxes to apply multiplier to: 35 (35 percent of the mailboxes in this profile get a multiplier of 1.2, the rest get no multiplier or 1.0)