Friday, April 11, 2014

Did You Know: Managed Store Performance and .NET: #MSExchange

During last week’s Microsoft Exchange Conference, Jeff Mealiffe recommended that the fixes found in KB2803754 or KB2803755 should be applied when installing Exchange 2013. Specifically, KB2803755 will ensure that the .NET Framework 4.5 becomes properly tuned for the Exchange Information Store within Windows 2012. The same fix for Windows 2008 R2 is contained in KB2803754
According to the KB article, a registry entry must be configured in order to activate this hotfix. The KB instructs the user to create the following registry key:
Create a DWORD value at [HKLM\Software\Microsoft\.NETFramework\DisableRetStructPinning] registry subkey, and set the DWORD value to 1.
After the registry key is added the server must be rebooted for all changes to be fully realized. 
Now the question may be raised as to how a .NET fix can enhance the performance of an Exchange 2013 database? During the development of Exchange 2013 the store.exe process was redesigned and coded as a managed store. The managed store within Exchange 2013 now has fault isolation properties. In order to achieve this isolation, a Store.Service.exe is utilized to manage worker processes. A separate worker process (Store.Worker.exe) runs for each mounted database on a Mailbox server. 
To illustrate this point, using the screenshot in the example below, there are two mounted databases (eu-01 & db01) running on a test Exchange 2013 Mailbox server.
Screen Shot 2014-04-11 at 12.30.45 PM
Now if we take a look at the task manager for this server, there is the overarching Store.Service.exe running that manages Store.Worker.exe processes. There is a Store.Worker.exe process for each active database that is running. 
Screen Shot 2014-04-11 at 12.26.00 PM
The managed store relies heavily on the .NET Framework so we need to be especially aware of any .NET patches released. 
 This patch will help reduce the amount of memory that the Store.Worker.exe processes consume on each Mailbox or Multi-role server within your environment. 

No comments:

Post a Comment