Every Exchange Administrator has had at least one user complaining that Outlook or Outlook Web App [OWA] was running slow. Although most of the time this is due to the user’s PC or the network itself, sometimes there might be actually a performance issue with one or more Exchange servers. So the troubleshooting begins. We analyze how the CPU, memory and disk are performing through PerfMon, we look at the Event Logs, Exchange Best Practices Analyzer, we use Performance Troubleshooter, etc... But now there is another tool that might be useful in certain scenarios: the Exchange Control Panel [ECP] Performance Console.
This console, which is not visible by default, provides numerous counters regarding the performance of the ECP. We can use it to check how long it takes to authenticate a user, how many PowerShell cmdlets have been invoked and even how long the server took to process requests.
To enable it, we have to manually edit the web.config file on the Client Access Server [CAS] we want to troubleshoot or analyze. Outlook Web App and ECP both have a web.config file that is used to configure some settings specific to ASP.NET. In this case, we are only interested in the one for ECP, which is located (by default) in: %SystemDrive%\Program Files\Microsoft\Exchange Server\V14\ClientAccess\ecp\web.config
Open the file with Notepad and look for the <appSettings> section, right in the first few lines. In there we will find the following key:
<!-- Set ShowPerformanceConsole to "true" to show ECP's Perf Console: -->
<add key="ShowPerformanceConsole" value="false" />
As the comment explains, all we have to do to enable the console is update the value of the ShowPerformanceConsole key from false to true. Save the file, run the usual IISRESET /NOFORCE to update IIS and we are good to go!
If we log in to the ECP before this change and click on the drop-down to the right of the help icon, we will only see the Help, Help Bubble and Copyright links:
However, after enabling the console we will also have the Performance Console link:
Once we click on Performance Console, the console itself will open in a new window:
If we go straight to the console once we log in to ECP, we will only have the following URLs:
But once we go back to ECP and start “moving around”, we will see information regarding more and more URLs as we can see from the screenshot above.
There are many counters available with this console, mostly are self-explanatory. Here is the list of all of them with a brief description:
Although most of these are too technical to be used by most administrators, there are many useful counters that will help troubleshoot a possible performance issue, such as Client Request Time, Server Request Time, LDAP Latency, Authentication or Client Network Time for example.
We can also export the table’s content by pressing the Copy button in the top left corner and copy all data into Notepad, Word, Excel, etc., which makes it easier to sort and analyze all counters:
But, there is more we can do with this console! In the <appSettings> section there is also another interesting feature:
<!-- Set LogPerformanceData to "true" to log ECP's performance records to the IIS log: -->
<add key="LogPerformanceData" value="false" />
By setting the LogPerformanceData to true, IIS will log all counters we see in the console for each request made to ECP. Let’s compare the same request (opening the InboxRules pane in ECP) without this setting enabled and with it enabled:
LogPerformanceData = False
2012-01-28 15:17:26 192.168.1.123 POST /ecp/RulesEditor/InboxRules.svc/GetList msExchEcpCanary=8ef6f537-6c83-43a8-ade4-9478fd4284e0 443 admin_nuno 192.168.1.126 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729) 200 0 0 875
LogPerformanceData = True
As we can see, all counters present in the console are being logged into the IIS logs. It might not be easy to decipher all the values initially, but if we search for URL Encoding we will find that %22 is a quotation mark, %3a is a colon and %2c is a comma. With this in mind:
With a good query using the famous Log Parser, we can easily analyze all these results for a specific user or even for all users, export the data to Excel and create a nice graph.
However, in my opinion, there are some downsides to this console:
Despite all of this, it is a useful tool if we are having performance issues and need some more detail on how ECP is performing.
I performed an online search for more details regarding this hidden feature but could not find any formal info from Microsoft. I only found two blog posts, including a great one from Steve Goodman who found this feature back in February 2010!
Other than this, the only thing I found was through the help icon in the console window, which takes us to the Outlook help webpage and where we can read the following:
The Performance Console is an internal Exchange team tool that displays performance information about network requests to the Exchange Control Panel server.
My guess is that this is just an internal tool, Microsoft has not yet made it public. As a final note, this feature is present in all versions of Exchange 2010, from RTM to SP2.
The hidden ECP Performance Console provides useful information regarding the performance of ECP for a specific CAS server. It is a valuable troubleshooting tool that should be also available for OWA.
If you want your business to succeed these days, you need a user-friendly website. Put these tools in your toolbox…
Do businesses rely too heavily on email for communication? Yes! Is the answer to replace email with chat apps? No!…
If you got your start with Visual Basic, you remember msgbox. This PowerShell function will bring back memories and help…
Microsoft Ignite 2019 included a slew of updates on products and services. Among the announcements was Azure Arc, which may…
Choosing communication tools is like choosing a first progamming language. While you want easy, you also want cross-platform, security, and…