<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Mike Lagase</title><subtitle type="html">Saving the Exchange world one day at a time.....</subtitle><id>http://blogs.technet.com/mikelag/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.technet.com/mikelag/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-02-02T15:18:31Z</updated><entry><title>The case of the slow Exchange 2003 Server – Lessons learned</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/10/29/the-case-of-the-slow-exchange-2003-server-lessons-learned.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/10/29/the-case-of-the-slow-exchange-2003-server-lessons-learned.aspx</id><published>2009-10-29T21:36:33Z</published><updated>2009-10-29T21:36:33Z</updated><content type="html">&lt;p&gt;Recently we received a case in support with an Exchange 2003 server where message delivery was slow and the Local Delivery queue was getting backed up. The Local Delivery queue was actually reaching in to the two thousand range and would fluctuate around that number for extended periods of time.&lt;/p&gt;  &lt;p&gt;So we collected some performance data and all RPC latencies, disk latencies, CPU utilization and many of the other counters that we looked at did not show any signs of any problems. &amp;lt;Scratching Head&amp;gt;&lt;/p&gt;  &lt;p&gt;This is actually a common problem that I have seen where the server is responding OK to clients and everything else appears to be operating normally except for the local delivery queue that continually rises. Even disabling any Anti-virus software on the server including any VSAPI versions does not resolve the problem. So we essentially have a case of a slow Exchange server with no signs of performance degradation using any normal troubleshooting methods.&lt;/p&gt;  &lt;p&gt;The reason may not seem apparently obvious, but let me show you what this common problem is that I have seen in these situations. This not only applies to Exchange 2003, but it also applies to later versions of Exchange. &lt;/p&gt;  &lt;p&gt;In some companies, they need to be able to journal messages to holding mailboxes either on the same server or a different server to maintain a copy of all messages that are sent in the organization for compliance purposes. These journaling mailboxes can get quite large and requires a special level of attention to ensure that the mailbox sizes and item counts for those mailboxes are maintained within reasonable levels. They kind of defy what our normal recommendations/guidance states because item counts in these folders can surely reach tens of thousands of items rather quickly and depends on the amount of mail that is sent within your organization.&lt;/p&gt;  &lt;p&gt;Generally, the special level of attention needed that I mentioned earlier for journaling mailboxes are often overlooked. For each journaling mailbox, you need to have a process that will not only back up the items in these folders, but you need to also have some process that goes in and purges the data out of the mailbox once the backup has been taken. This purging process is necessary to maintain acceptable performance levels on an Exchange server. If these mailboxes are on their own server, user mailboxes are not normally affected. If these mailboxes are on the same server as user mailboxes, then this is where you might run in to some problems.&lt;/p&gt;  &lt;p&gt;In this case that we received, we had found a journaling mailbox that had almost 1.5 million items in the mailbox that was 109GB in size as shown in the below screenshot. Wow!! That is a lot of items in this one mailbox.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/ThecaseoftheslowExchange2003ServerLesson_ABBE/huge%20journal%20mailbox-fixed_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="huge journal mailbox-fixed" border="0" alt="huge journal mailbox-fixed" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/ThecaseoftheslowExchange2003ServerLesson_ABBE/huge%20journal%20mailbox-fixed_thumb.png" width="1028" height="177" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you tried to logon to this mailbox using Outlook, the client would most likely hang for 5-10 minutes trying to query the amount of rows in the message table to generate the view that Outlook is trying to open. Once this view is created, you should now be able to view the items and then get back control of the Outlook client. You may think that you could simply go in and start removing/deleting items from this mailbox to start lowering the overall size of the mailbox. Try as you must, but you will most likely end up trying to do this for days since the performance impact of this amount of items in the mailbox will make this a very painful process. Making any modifications to the messages in these folders will cause the message tables to be updated which for this amount of items is simply going to take an exorbitant amount of time.&lt;/p&gt;  &lt;p&gt;Our standard recommendation for Exchange mailboxes on Exchange 2003 servers is to have item counts under 5,000 items per folder. This guidance can be found in the &lt;em&gt;Understanding the Performance Impact of High Item Counts and Restricted Views&lt;/em&gt; whitepaper &lt;a href="http://technet.microsoft.com/en-us/library/cc535025.aspx"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;A simple troubleshooting step would be to dismount the mailbox store that this mailbox resides in to see if the message delivery queues go down. If all of the queues flush for all other mailbox stores, you have now found your problem. &lt;/p&gt;  &lt;p&gt;If you absolutely need to get in to the mailbox to view some of the data, an Outlook client may not be the way to go to do some housecleaning. An alternative would be to use the &lt;a href="http://mfcmapi.codeplex.com/"&gt;MFCMAPI&lt;/a&gt; tool to view the contents of the mailbox. MFCMAPI will allow you to configure the tool to only allow a certain number of items to be returned at any given time. If you pull up MFCMAPI’s options screen, you can change the throttling section to limit the amount of rows that are displayed. If you were to put 4800 items in the highlighted section below, you would essentially limit the amount of rows or messages that are queried when the folder is opened to the number that you have entered. This will make viewing some of information a little bit easier, but still would be very cumbersome.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/ThecaseoftheslowExchange2003ServerLesson_ABBE/clip_image002_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/ThecaseoftheslowExchange2003ServerLesson_ABBE/clip_image002_thumb.jpg" width="584" height="358" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There are a couple of workarounds that you can do to clean this mailbox out.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If the data in the mailbox is already backed up, you could disable mail for that mailbox, run the cleanup agent and then create a new mailbox for the user. &lt;strong&gt;Note:&lt;/strong&gt; the size of the database will still be huge and will increase backup and restore times even if you should recreate the mailbox. If you are finding that the backup times are taking a long time, you may want to think about using the dial tone database in the next suggestion or possibly moving the mailboxes on this store to a new database AFTER you have cleaned out the problem mailbox and then retiring the old database. &lt;/li&gt;    &lt;li&gt;If the Mailbox Database houses only this one mailbox, you could simply dial tone that database starting with a fresh database. Instructions on how to do this can be found &lt;a href="http://technet.microsoft.com/en-us/library/aa998759(EXCHG.65).aspx"&gt;here&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Purging the data out the mailbox using Mailbox Manager or some 3rd party tool may work, but keep in mind that you will most likely experience a performance problem on the server while the information is cleaned out of the mailbox and could take possibly hours to run&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Long live that 109GB/1.5million item mailbox!!! :)&lt;/p&gt;  &lt;p&gt;Another way to possibly find the high item count user is to use the PFDavAdmin tool to export items counts in users mailboxes. Steps on how to do this can be found &lt;a href="http://msexchangeteam.com/archive/2007/04/24/438170.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;These cases are sometimes very tough to troubleshoot as any performance tool that you might try to use to determine where the problem might lie would not showing anything at the surface. Since the Exchange server is still responding to RPC calls in a timely fashion, any expensive calls running such as a query rows operation will surely slow things down. If you see that things are slow on your Exchange 2003 server and perfmon does not show anything glaring, one of the first things that I check is item counts in users mailboxes looking for some top high item count offenders. Exchange 2007 can have other reasons for this slowness, but that would be another blog post in and of itself.&lt;/p&gt;  &lt;p&gt;So the moral of the story here is that should you have large mailboxes in your organization that are used as a journaling mailbox, a resource mailbox, or some type of automatic email processing application that might make use of Inbox rules to manipulate data in the mailbox, then you need to be absolutely sure that if the mailboxes are backed up or not, that the item counts in the folders of these mailboxes need to be kept to a reasonable count size or they will bring an Exchange server to crawling mode in trying to process email.&lt;/p&gt;  &lt;p&gt;Just trying to pass on some of this not so obvious information…….&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3290207" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /><category term="Exchange 2003" scheme="http://blogs.technet.com/mikelag/archive/tags/Exchange+2003/default.aspx" /></entry><entry><title>How to fix/repair broken Exchange 2007 counters</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/10/21/how-to-fix-repair-broken-exchange-2007-counters.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="67139" href="http://blogs.technet.com/mikelag/attachment/3288268.ashx" /><id>http://blogs.technet.com/mikelag/archive/2009/10/21/how-to-fix-repair-broken-exchange-2007-counters.aspx</id><published>2009-10-21T21:09:00Z</published><updated>2009-10-21T21:09:00Z</updated><content type="html">&lt;p&gt;I commonly get calls on the inability to see performance counters in Performance Monitor (perfmon) and the inability to query them through WMI. I thought I would take some time to write about how to look for any problems with Exchange Performance Counters and then provide some high level insight on how to possibly fix them. Most of this information applies to Windows 2003 servers.&lt;/p&gt;  &lt;p&gt;If the counters are not being shown at all, the first place to check is the registry to see if the counters are not disabled. Here is a snippet of what one of the registry keys would look like&lt;/p&gt;  &lt;p&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESE\Performance]   &lt;br /&gt;&amp;quot;Close&amp;quot;=&amp;quot;ClosePerformanceData&amp;quot;    &lt;br /&gt;&amp;quot;Collect&amp;quot;=&amp;quot;CollectPerformanceData&amp;quot;    &lt;br /&gt;&amp;quot;Library&amp;quot;=&amp;quot;C:\\Program Files\\Microsoft\\Exchange Server\\bin\\perf\\%PROCESSOR_ARCHITECTURE%\\eseperf.dll&amp;quot;    &lt;br /&gt;&amp;quot;Open&amp;quot;=&amp;quot;OpenPerformanceData&amp;quot;    &lt;br /&gt;&amp;quot;PerfIniFile&amp;quot;=&amp;quot;eseperf.ini&amp;quot;&lt;/p&gt;  &lt;p&gt;If you also see a value of &lt;strong&gt;Disable Performance Counters&lt;/strong&gt; in addition to the above default entries and is set to a nonzero value, the counter at one point had a problem loading and the Operating System disabled them for whatever reason. Set the value to 0 and then close and open Perfmon again to see if you can see the counters again. More information on this &lt;strong&gt;Disable Performance Counters&lt;/strong&gt; setting can be found &lt;a href="http://technet.microsoft.com/en-us/library/cc784382(WS.10).aspx"&gt;here&lt;/a&gt; . If this works for you, then whew, that was an easy one….&lt;/p&gt;  &lt;p&gt;If the Performance key is missing for a particular service, then we have bigger problems. I am not sure what causes this key to get removed, but if the key is not there, Perfmon or WMI does not know how to load the counters. There are a couple of key required parts that you need to understand before we can load any Performance counter, not just Exchange. The key pieces that are needed to reload any Performance counter is the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Performance key must be created under the specified service&lt;/li&gt;    &lt;li&gt;Library path must be specified to the appropriate DLL for the service&lt;/li&gt;    &lt;li&gt;A PerfIniFile must be specified which is the name of the ini file that will reload a specific services performance counters&lt;/li&gt;    &lt;li&gt;Lastly, we need to have the Close, Collect, and Open values which specify what method is used to retrieve the Performance Counter Data. &lt;strong&gt;Note:&lt;/strong&gt; This is unique to each service, so they will not always have the same information&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If we have these key pieces of information in the registry, we have the ability to reload said services performance counters. If we take the example above for ESE, if we opened a command prompt and navigated to the C:\Program Files\Microsoft\Exchange Server\bin\perf\AMD64 directory and then typed &lt;strong&gt;lodctr&lt;/strong&gt; &lt;strong&gt;eseperf.ini,&lt;/strong&gt; this will reload the counters for ESE. If the counters were loaded successfully, we should now see that we have also added the First Counter, First Help, Last Counter, Last Help values as shown below.. These values correspond to specific data that was loaded in to the Perflib library.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/HowtofixrepairbrokenExchange2007counters_E4DA/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/HowtofixrepairbrokenExchange2007counters_E4DA/image_thumb_1.png" width="393" height="213" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If everything went well and you reopen Perfmon, You should now hopefully see the counters loaded. If they have not loaded, refresh the registry to see if the Disable Performance Counters key shows back up, If not, check the application log for Perflib errors which should provide additional information regarding why these counters did not load successfully.&lt;/p&gt;  &lt;p&gt;If you don’t know already, on Windows 2003 servers, you can actually pull up performance counters using the command &lt;strong&gt;Perfmon /WMI&lt;/strong&gt;. If you do not see the newly added counters, then they have not been synchronized with the WMI repository yet. To help force this along, you could run &lt;strong&gt;wmiadap /f&lt;/strong&gt; to force the reload of all counters in to the WMI repository.&lt;/p&gt;  &lt;p&gt;If this was successful, you will now see some additional Wbem entries as shown in the below pictorial.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/HowtofixrepairbrokenExchange2007counters_E4DA/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/HowtofixrepairbrokenExchange2007counters_E4DA/image_thumb_2.png" width="410" height="300" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Pulling up Perfmon /WMI again should hopefully show the counters that you are looking for. In some cases, monitoring software can still not pick up the newly added counters until the WMI service (Windows Management Instrumentation) has been restarted.&lt;/p&gt;  &lt;p&gt;If you ever wanted to unload Performance counters, one might think that you could simply unload the counters by running unlodctr eseperf.ini. Unfortunately, this will not work because the unlodctr utility requires that a service name be passed in instead of the ini file. To find the actual name of the service, you could simply open up eseperf.ini and at the top of the file, you should notice an entry similar to the following&lt;/p&gt;  &lt;p&gt;[info]   &lt;br /&gt;drivername=ESE&lt;/p&gt;  &lt;p&gt;Ahh, there is the service name. Now if I run &lt;strong&gt;unlodctr ESE&lt;/strong&gt;, this will now be successful. Doing this will remove the First Counter, First Help, Last Counter, Last Help values from the registry.&lt;/p&gt;  &lt;p&gt;Hopefully you are still with me at this time. Now what happens if the performance registry keys for all of your services went missing, now what do you do? Reinstall, flatten the box and reinstall to get them back? Well, unfortunately, there is not a direct way of recreating these registry keys as they are created during the installation of Exchange. &lt;/p&gt;  &lt;p&gt;The majority of the folks just export the data from another server, clean out any of the data that references performance counter data from the old server and then import them on the affected server. This does in fact work and is what I am going to talk about next on how to recover from a complete Performance key meltdown.&lt;/p&gt;  &lt;p&gt;Attached to this post is a zip file that contains all of the Performance keys across various different role combinations such as MBX, CAS, HUB, HUB/CAS, HUB/CAS/MBX. I’ve done all of the dirty work for you, so all you have to do is to perform some very simple modification steps to the files and then you are in business.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;CAUTION!!!: DO NOT IMPORT&lt;/strong&gt; these registry keys if the Performance registry keys already exist as it will overwrite the data that currently exists in the registry and could potentially break your Performance counters that are currently working. If you only need to reload the Performance key for a single service, then pull out the data for that specific service, save it to a reg file and then import only that data. Basically use it as a reference point to help get you back running again.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;If you feel the need to use these reg import files due to all of the performance keys missing for all services, simply open the file that pertains to the role that you have installed and verify that the paths are correct to the correct library files. By Default, we install Exchange in to the to c:\program files\microsoft\Exchange Server directory, so if Exchange was installed outside of the default directory, you will need to update the file manually. Let’s take the ESE performance key below:&lt;/p&gt;  &lt;p&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESE\Performance]   &lt;br /&gt;&amp;quot;Close&amp;quot;=&amp;quot;ClosePerformanceData&amp;quot;    &lt;br /&gt;&amp;quot;Collect&amp;quot;=&amp;quot;CollectPerformanceData&amp;quot;    &lt;br /&gt;&amp;quot;Library&amp;quot;=&amp;quot;C:\\Program Files\\Microsoft\\Exchange Server\\bin\\perf\\%PROCESSOR_ARCHITECTURE%\\eseperf.dll&amp;quot;    &lt;br /&gt;&amp;quot;Open&amp;quot;=&amp;quot;OpenPerformanceData&amp;quot;    &lt;br /&gt;&amp;quot;PerfIniFile&amp;quot;=&amp;quot;eseperf.ini&amp;quot;&lt;/p&gt;  &lt;p&gt;Here you will see that library has the following value:&lt;/p&gt;  &lt;p&gt;&amp;quot;Library&amp;quot;=&amp;quot;C:\\Program Files\\Microsoft\\Exchange Server\\bin\\perf\\%PROCESSOR_ARCHITECTURE%\\eseperf.dll&amp;quot;&lt;/p&gt;  &lt;p&gt;What you will need to do is to replace the path with the correct path in which you have installed Exchange. If you installed Exchange on D: in the following directory (D:\\Program Files\\Microsoft\\Exchange Server\\bin), you would simply need to modify the first part of the path to show D:\\ instead of C:\\. A quick find and replace should work to hit all Performance keys. If you have installed it in to another Directory outside of the default paths, then you have a little more work to do to replace the path information. Just remember that for each backslash (\), you have to include double-backslashes (\\) to allow for proper importing of the reg files.&lt;/p&gt;  &lt;p&gt;There are only a handful of entries you have to manually modify, so this really shouldn’t take too long. Once you have the paths changed, save the appropriate file as a .reg file and import it by double-clicking on the file. Verify the Performance reg keys are good and valid by opening the Registry Editor to verify. &lt;/p&gt;  &lt;p&gt;Once the keys have been verified in the registry and look good, you can then run the powershell script to reload all of the Exchange performance counters. Simply copy the ReinstallAllPerCounters.pst.txt file to the Exchange server and then remove the .txt extension on the file. Open the Exchange Management Shell and then run the script. The screenshot below shows each ini file attempting to be loaded. Of course, on my server, I already had all of the performance keys, so we simply reported that the counters were already installed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/HowtofixrepairbrokenExchange2007counters_E4DA/clip_image002%5B6%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002[6]" border="0" alt="clip_image002[6]" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/HowtofixrepairbrokenExchange2007counters_E4DA/clip_image002%5B6%5D_thumb.jpg" width="644" height="278" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you would like to transfer this data to WMI, simply type &lt;strong&gt;Y&lt;/strong&gt; when asked.&lt;/p&gt;  &lt;p&gt;Once this has completed, be sure to check the application event log for details on any counters that failed to load. If everything went well, voila, you should have most if not all of your Exchange Performance Counters back once again.&lt;/p&gt;  &lt;p&gt;If the counters are still not showing up for whatever reason in WMI, you can run the following 2 commands to clear the WMI Adap cache and then re-sync the counters again to hopefully kick start things once again.&lt;/p&gt;  &lt;p&gt;See &lt;a title="http://msdn.microsoft.com/en-us/library/aa394525(VS.85).aspx" href="http://msdn.microsoft.com/en-us/library/aa394525(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa394525(VS.85).aspx&lt;/a&gt; for more information on some of the additional commands included with the winmgmt command.&lt;/p&gt;  &lt;p&gt;Hopefully this will help you out trying to get your Exchange performance counters going once again.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3288268" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /></entry><entry><title>How to monitor and troubleshoot the use of Nonpaged pool memory in Exchange Server 2003 or in Exchange 2000 Server</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/09/15/how-to-monitor-and-troubleshoot-the-use-of-nonpaged-pool-memory-in-exchange-server-2003-or-in-exchange-2000-server.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/09/15/how-to-monitor-and-troubleshoot-the-use-of-nonpaged-pool-memory-in-exchange-server-2003-or-in-exchange-2000-server.aspx</id><published>2009-09-15T20:06:26Z</published><updated>2009-09-15T20:06:26Z</updated><content type="html">&lt;p&gt;&lt;i&gt;This article is a high level overview on how to troubleshoot current Nonpaged pool memory usage on an Exchange server.&amp;#160; It explains what could be done to help mitigate some of the underlying problems that may be consuming Nonpaged pool memory and demonstrates tools that can be used to help track down processes or drivers consuming the most amount of memory.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt; Nonpaged pool memory is a limited resource on 32-bit architecture systems.&amp;#160; It is dependent on how the server is setup to manage memory and is calculated at system startup. The amount of nonpaged pool allocated on a given server is a combination of overall memory, running/loaded drivers and if the /3GB switch has been added to the boot.ini file.   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Nonpaged pool memory is used for objects that cannot be paged out to disk and have to remain in memory as long as they are allocated. Examples of such objects may be network card drivers, video drivers and Antivirus filter level drivers.&amp;#160; By default, without the /3GB switch, the OS will allocate 256MB of RAM on a server for a Nonpaged pool. When the /3GB switch is added and the server is rebooted, this essentially halves the amount of Nonpaged pool memory on a given server to 128MB of RAM. The Windows Performance team has a table listed in &lt;a title="http://blogs.technet.com/askperf/archive/2007/03/07/memory-management-understanding-pool-resources.aspx" href="http://blogs.technet.com/askperf/archive/2007/03/07/memory-management-understanding-pool-resources.aspx"&gt;http://blogs.technet.com/askperf/archive/2007/03/07/memory-management-understanding-pool-resources.aspx&lt;/a&gt; that discusses what the max pool memory resources can be on any given server. This link also disusses how to view the maximum amount of pool memory on any given server using Process Explorer. For Exchange servers, it is recommended to add the /3GB switch to the boot.ini file with the exception of pure HUB or Front End (FE) servers to allocate more memory to the user processes. As you can see, this limits how much you can load within that memory space. If this memory has been exhausted, the server will start becoming unstable and may become inaccessible. Unfortunately, since this memory cannot be paged in and out, you cannot resolve this problem without rebooting the server. &lt;/p&gt;  &lt;p&gt;On Microsoft Windows 2003 64-bit operating systems, the Kernel Nonpaged pool memory can use as much as 128GB depending on configuration and RAM. This essentially overcomes this limitation. See &lt;a href="http://support.microsoft.com/kb/294418"&gt;294418&lt;/a&gt; for a list of differences in memory architectures between 32-bit and 64-bit versions of windows. Currently, the only version of Exchange that is supported on a 64-bit operating system is Exchange 2007, so when working with previous versions of Exchange we may still run into this Nonpaged pool limitation.&lt;/p&gt;  &lt;h5&gt;Symptoms&lt;/h5&gt;  &lt;p&gt;When Nonpaged pool memory has been depleted or is nearing the maximum on an Exchange Server, the following functionality may be affected because these features require access to HTTP/HTTPS to function:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;b&gt;&lt;font color="#0080c0"&gt;Users connecting via Outlook Web Access may experience “Page cannot be displayed” errors.          &lt;br /&gt;&lt;/font&gt;        &lt;br /&gt;&lt;/b&gt;The issue occurs when nonpaged pool memory is no longer sufficient on the server to process new requests.&amp;#160; More information on troubleshooting this issue is available in the following KB article:       &lt;br /&gt;Error message when you try to view a Web page that is hosted on IIS 6.0: &amp;quot;Page cannot be displayed&amp;quot;       &lt;br /&gt;&lt;a href="http://support.microsoft.com/?id=933844"&gt;http://support.microsoft.com/?id=933844&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;b&gt;Note: &lt;/b&gt;If this resolves your OWA issue, it is recommended to determine what is consuming nonpaged pool memory on the server. See the &lt;u&gt;Troubleshooting&lt;/u&gt; section of this document for help in determining what is consuming this memory.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;font color="#0080c0"&gt;RPC over HTTP connections are slow or unavailable.          &lt;br /&gt;&lt;/font&gt;        &lt;br /&gt;&lt;/b&gt;If you experience difficulties when you use an Outlook client computer to connect to a front-end server that is running Exchange Server 2003 it can indicate a depletion of Nonpaged pool memory.&amp;#160; HTTP.sys stops accepting new connections when the available nonpaged pool memory drops under 20MB.&amp;#160; More information on troubleshooting this issue is available in the following KB article:       &lt;br /&gt;      &lt;br /&gt;You experience difficulties when you use an Outlook client computer to connect to a front-end server that is running Exchange Server 2003       &lt;br /&gt;&lt;a href="http://support.microsoft.com/?id=924047"&gt;http://support.microsoft.com/?id=924047&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;font color="#0080c0"&gt;The IsAlive check fails on Cluster&lt;/font&gt;         &lt;br /&gt;        &lt;br /&gt;&lt;/b&gt;The cluster IsAlive checks for the Exchange HTTP resource on a cluster server may fail causing service outages or failovers. This is the most common scenario that we see for Exchange 2003 clusters. When there is less than 20MB of nonpaged pool memory, http.sys will start rejecting connections affecting the IsAlive check.       &lt;br /&gt;      &lt;br /&gt;When nonpaged pool is becoming exhausted, the IsAlive check fails causing the resource to fail. Depending on your recovery settings for the HTTP resource in Cluster Administrator, we will try to either restart the resource or fail over the group. By default, we will try restarting the resource 3 times before affecting the group. If this threshold is hit, the entire group will fail over to another cluster node.       &lt;br /&gt;To verify if nonpaged pool has been depleted, you can look in 2 possible locations. One is the cluster.log file and the other is the httperr.log       &lt;br /&gt;      &lt;br /&gt;&lt;i&gt;&lt;font color="#0080c0"&gt;&lt;strong&gt;Cluster.log&lt;/strong&gt;           &lt;br /&gt;&lt;/font&gt;&lt;/i&gt;For the cluster.log file, you may see an entry similar to the following:       &lt;br /&gt;      &lt;br /&gt;00000f48.00000654::2007/05/16-17:16:52.435 ERR Microsoft Exchange DAV Server Instance &amp;lt;Exchange HTTP Virtual Server Instance 101 (EXVSNAME)&amp;gt;: [EXRES] DwCheckProtocolBanner: failed in receive. Error 10054.       &lt;br /&gt;      &lt;br /&gt;Error 10054 is equivalent to WSAECONNRESET which is http.sys rejecting the connection.       &lt;br /&gt;      &lt;br /&gt;&lt;i&gt;&lt;font color="#0080c0"&gt;&lt;strong&gt;Httperr.log&lt;/strong&gt;           &lt;br /&gt;&lt;/font&gt;&lt;/i&gt;In the httperr.log that is located in the %windir%\system32\logfiles\httperr directory on the Exchange Server, you may see entries similar to the following.       &lt;br /&gt;      &lt;br /&gt;2007-05-16 16:44:56 - - - - - - - - - 1_Connections_Refused -       &lt;br /&gt;2007-05-16 16:50:42 - - - - - - - - - 3_Connections_Refused -       &lt;br /&gt;2007-05-16 16:50:47 - - - - - - - - - 2_Connections_Refused -       &lt;br /&gt;2007-05-16 17:16:35 - - - - - - - - - 5_Connections_Refused –       &lt;br /&gt;      &lt;br /&gt;This confirms that http.sys is rejecting the connection to the server. Additional information regarding this logging can be found in the following article:       &lt;br /&gt;      &lt;br /&gt;Error logging in HTTP API       &lt;br /&gt;&lt;a href="http://support.microsoft.com/?id=820729"&gt;http://support.microsoft.com/?id=820729&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;Additional information for this issue is available in the following KB:       &lt;br /&gt;      &lt;br /&gt;Users receive a &amp;quot;The page cannot be displayed&amp;quot; error message, and &amp;quot;Connections_refused&amp;quot; entries are logged in the Httperr.log file on a server that is running Windows Server 2003, Exchange 2003, and IIS 6.0       &lt;br /&gt;&lt;a href="http://support.microsoft.com/?id=934878"&gt;http://support.microsoft.com/?id=934878&lt;/a&gt;&lt;u&gt;        &lt;br /&gt;&lt;/u&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;font color="#0080c0"&gt;Random Server Lockups or Hangs&lt;/font&gt;&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;font color="#0080c0"&gt;Certain operations failing because of the lack of memory to support new operations.          &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;Check the Application and System logs where common operations might be failing. &lt;/li&gt; &lt;/ol&gt;  &lt;h5&gt;Potential Workaround to provide immediate/temporary relief&lt;/h5&gt;  &lt;p&gt;If immediate relief is needed for all these scenarios to prevent these rejections from occurring on a cluster server, then you can add the &lt;b&gt;EnableAggressiveMemoryUsage&lt;/b&gt; registry key on the server for temporary relief. When this is added, http.sys will then start rejecting connections when there is less than 8MB of Nonpaged pool memory available, overriding the 20MB default value. See &lt;a href="http://support.microsoft.com/?id=934878"&gt;934878&lt;/a&gt; for more information on setting this key. &lt;strong&gt;Note:&lt;/strong&gt;&amp;#160; Please use this as a temporary method to get the Exchange cluster resources back online and investigate the underlying cause of who is taking up the most amount of Nonpaged pool memory on the server. An ideal situation would be having &lt;strong&gt;100MB or less&lt;/strong&gt; of overall Nonpaged pool memory consumed on any given server.&lt;/p&gt;  &lt;h5&gt;&lt;b&gt;Nonpaged Pool Memory Depletion events&lt;/b&gt; &lt;/h5&gt;  &lt;p&gt;When pool memory has been depleted, you may start receiving the following error in the System Event log stating that a specific pool memory has been depleted. &lt;/p&gt;  &lt;p&gt;Event ID 2019    &lt;br /&gt;Event Type: Error     &lt;br /&gt;Event Source: Srv     &lt;br /&gt;Event Category: None     &lt;br /&gt;Event ID: 2019     &lt;br /&gt;Description:     &lt;br /&gt;The server was unable to allocate from the system NonPaged pool because the pool was empty. &lt;/p&gt;  &lt;p&gt;If you are getting these events, then the server is most likely very unstable currently or will be very soon. Immediate action is required to bring the server back online to a fully functional state such as moving the cluster resources to another node or rebooting the server that has this problem.&lt;/p&gt;  &lt;p&gt;&lt;a name="Troubleshooting"&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h5&gt;Troubleshooting&lt;/h5&gt;  &lt;p&gt;There are a couple of different ways to view the amount of real-time pool memory usage that is currently being consumed and the easiest one is Task Manager. Once you pull up Task Manager, you will need to click the Performance tab and in the lower right hand corner, you will see the amount of pool memory usage that is highlighted. If nonpaged pool is 106MB or more, then there is a possibility that the cluster IsAlive checks for the HTTP resource are failing or close to failing.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/image_thumb.png" width="489" height="541" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can also view Nonpaged and Paged Pool usage per process on the Processes tab in Task Manager. I’ve added the Paged Pool column since the same basic rules applies there too. To do this, select the Processes tab, select View on the menu, and then Select Columns. Add Non-paged Pool, Paged Pool, and the Handles columns as shown below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/image_thumb_5.png" width="301" height="347" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once this column is added, you can now view pool usage per process which may help you track down what process is consuming the most amount of memory. You can sort each column to look for the highest consumer. The handle column is added to help determine if there is any process that may have a large amount of handles consuming a larger amount of nonpaged pool memory. (&lt;strong&gt;Note:&lt;/strong&gt; A high handle count may affect either paged or nonpaged pool memory, so keep this in mind when analyzing data.)&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/image_thumb_2.png" width="694" height="588" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Another way of looking at handles for any given process is to use Process Explorer available &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx"&gt;here&lt;/a&gt;.&amp;#160; To add the handle count column, you would select View on the menu, then “Select Columns”, click the Process Performance tab, and then put a check box next to “Handle Count”. Click OK.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/image_thumb_3.png" width="350" height="470" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you can’t determine from there what is consuming the memory, this may be a kernel related problem and not application specific. This will require some additional tools to determine what could be affecting the nonpaged pool memory.&lt;/p&gt;  &lt;p&gt;One of the first things to look for is drivers that are more than 2 years old that may have had some issues in the past, but have been resolved with later driver releases. Running the Exchange Best Practices analyzer tool (ExBPA) located &lt;a href="http://technet.microsoft.com/en-us/exchange/bb288481.aspx"&gt;here&lt;/a&gt; can help report any drivers that may be outdated or have been known to have issues previously. If ExBPA did not report any problems with the configuration of the server or any driver related problems, further troubleshooting is necessary.&lt;/p&gt;  &lt;p&gt;If the Windows Support tools are installed, you can use a tool called Poolmon to allow you to view what specific tags are consuming memory. More information regarding Poolmon can be found in the Windows Support Tools documentation &lt;a href="http://technet2.microsoft.com/windowsserver/en/library/85b0ba3b-936e-49f0-b1f2-8c8cb4637b0f1033.mspx"&gt;here&lt;/a&gt;.&amp;#160; To run Poolmon, simply open up a command prompt and type “Poolmon” and then hit the “b” key to sort on the overall byte usage (Bytes) with the highest being at the top. Anything you see that is highlighted means that there was a change in memory for that specific tag.&lt;/p&gt;  &lt;p&gt;In this view, you want to look at the top five consumers of memory which should be listed at the top. For the most part, you will be looking at the first two columns named &lt;i&gt;Tag&lt;/i&gt; &amp;amp; &lt;i&gt;Type&lt;/i&gt;.&amp;#160; The Tag is specific to a particular driver and the Type column indicates what type of memory is being used, nonpaged pool (Nonp) or paged pool (Paged) memory.&amp;#160; You will also be looking at the &lt;i&gt;Bytes&lt;/i&gt; (shown in yellow) column. This column shows the bytes in use for the particular process Tag.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/clip_image005_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Howtomonitorandtroubleshoottheuseofnonpa_EBAA/clip_image005_thumb.jpg" width="489" height="564" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The &lt;i&gt;Allocs&lt;/i&gt; and &lt;i&gt;Frees&lt;/i&gt; columns can be used to determine if a tag is leaking memory. If there is a large difference between these two columns for a particular tag, then there may be a leak in that particular tag and should be investigated.&lt;/p&gt;  &lt;p&gt;The file &lt;i&gt;Pooltag.txt&lt;/i&gt; lists the pool tags used for pool allocations by kernel-mode components and drivers supplied with Windows, the associated file or component (if known), and the name of the component. &lt;/p&gt;  &lt;p&gt;Where to get Pooltag.txt?&lt;/p&gt;  &lt;p&gt;After install the debugging tools for windows located &lt;a href="http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx"&gt;here&lt;/a&gt;, pooltag.txt can be found in the C:\Program Files\Debugging Tools for Windows\triage directory and normally has the most recent list of pooltags.&lt;/p&gt;  &lt;p&gt;Pooltag.txt can also be obtained from the Windows Resource Kit:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If the specific tag in question is not listed in pooltag.txt and is leaking memory, you can search for pool tags used by third-party drivers using the steps in the following article:&lt;/p&gt;  &lt;p&gt;How to find pool tags that are used by third-party drivers    &lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;298102"&gt;http://support.microsoft.com/default.aspx?scid=kb;EN-US;298102&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you find what tag pertains to a specific driver, you would contact the vendor of that driver to see if they should have an updated version that may help alleviate this memory leak issue.&lt;/p&gt;  &lt;h4&gt;Recommended remediation&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Install the recommended hotfixes for Windows 2003 server based clusters from &lt;a href="http://support.microsoft.com/kb/895092"&gt;895092&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Run the Exchange Best Practices Analyzer (ExBPA) tool to ensure that the exchange server is configured optimally. (ie: SystemPages registry setting, any outdated network card drivers, video drivers or storage drivers (storport.sys or SAN drivers), Mount point drivers (mountmgr.sys), boot.ini settings, etc.) &lt;/li&gt;    &lt;li&gt;Ensure that Windows 2003 SP2 is installed. If SP2 is not installed, at a minimum, you need to apply the hotfix in &lt;a href="http://support.microsoft.com/kb/918976"&gt;918976&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Ensure that the Scalable Networking Pack features have been disabled. See &lt;a title="http://msexchangeteam.com/archive/2007/07/18/446400.aspx" href="http://msexchangeteam.com/archive/2007/07/18/446400.aspx"&gt;http://msexchangeteam.com/archive/2007/07/18/446400.aspx&lt;/a&gt; for more information on how this can affect Exchange Servers &lt;/li&gt;    &lt;li&gt;Upgrade ExIFS.sys to the version listed in &lt;a href="http://support.microsoft.com/kb/946799"&gt;946799&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;If using MPIO, ensure &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;923801"&gt;923801&lt;/a&gt; at a minimum is installed. &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;935561"&gt;935561&lt;/a&gt; is recommended. Also see &lt;a href="http://support.microsoft.com/kb/961640"&gt;961640&lt;/a&gt; for another known memory leak issue&lt;/li&gt;    &lt;li&gt;If Emulex drivers are installed, be sure to upgrade to the version listed &lt;a href="http://www.emulex.com/downloads/emulex/cnas-and-hbas/drivers/windows/storport-miniport-driver.html"&gt;here&lt;/a&gt; to help with nonpaged pool memory consumption. &lt;/li&gt;    &lt;li&gt;Disable any unused NICs to lower overall NPP memory consumption &lt;/li&gt;    &lt;li&gt;Update network card drivers to the latest version.      &lt;ol&gt;       &lt;ul&gt;         &lt;li&gt;If Jumbo Frames are being used, be sure to set this back to the default setting or lower the overall frame size to help reduce NPP memory usage. &lt;/li&gt;          &lt;li&gt;If Broadcom Drivers are being utilized and are using the Virtual Bus Device (VBD) drivers, be sure to update the drivers to a driver version later than 4.x. Check your OEM manufacturers website for updated versions or go to the Broadcom download page &lt;a href="http://www.broadcom.com/support/ethernet_nic/downloaddrivers.php?source=top"&gt;here&lt;/a&gt; to check on their latest driver versions. &lt;/li&gt;          &lt;li&gt;Any changes to the Network Card receive buffers or Receive Descriptors from the default could increase overall NPP memory. Set them back to the default settings if at all possible. This can be seen in poolmon with an increase in MmCm pool allocations. &lt;/li&gt;       &lt;/ul&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Update video card drivers to the latest version. If any accelerated graphics drivers are enabled, go ahead and uninstall these drivers and switch the display driver to Standard VGA. Add the &lt;strong&gt;/basevideo&lt;/strong&gt; switch to the boot.ini file and reboot the server. &lt;/li&gt;    &lt;li&gt;Check to see if the &lt;strong&gt;EnableDynamicBacklog&lt;/strong&gt; setting is being used on the server which can consume additional nonpaged pool memory. See &lt;a href="http://support.microsoft.com/KB/951162"&gt;951162&lt;/a&gt;. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;If you are still having problems with NonPaged pool memory at this point, then I would recommend calling Microsoft Customer Support for further assistance with this problem.&lt;/p&gt;  &lt;h5&gt;Additional Reading&lt;/h5&gt;  &lt;p&gt;Nonpaged Pool is over the warning threshold (ExBPA Rule)    &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/aa996269(EXCHG.80).aspx"&gt;http://technet.microsoft.com/en-us/library/aa996269(EXCHG.80).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Understanding Pool Consumption and Event ID: 2020 or 2019    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/ntdebugging/archive/2006/12/18/Understanding-Pool-Consumption-and-Event-ID_3A00_--2020-or-2019.aspx"&gt;http://blogs.msdn.com/ntdebugging/archive/2006/12/18/Understanding-Pool-Consumption-and-Event-ID_3A00_--2020-or-2019.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/askperf/archive/2007/03/07/memory-management-understanding-pool-resources.aspx"&gt;&lt;/a&gt;&lt;/p&gt; 3GB switch   &lt;br /&gt;&lt;a href="http://blogs.technet.com/askperf/archive/2007/03/23/memory-management-demystifying-3gb.aspx"&gt;http://blogs.technet.com/askperf/archive/2007/03/23/memory-management-demystifying-3gb.aspx&lt;/a&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="TechBulletinArchiveAndSubscriptionInfo"&gt;&amp;#160;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_MailAutoSig"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3281212" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /><category term="Exchange 2003" scheme="http://blogs.technet.com/mikelag/archive/tags/Exchange+2003/default.aspx" /><category term="Nonpaged Pool" scheme="http://blogs.technet.com/mikelag/archive/tags/Nonpaged+Pool/default.aspx" /></entry><entry><title>New ADAccess Performance counters included with Exchange 2007 SP2</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/08/30/new-adaccess-performance-counters-included-with-exchange-2007-sp2.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/08/30/new-adaccess-performance-counters-included-with-exchange-2007-sp2.aspx</id><published>2009-08-31T01:17:12Z</published><updated>2009-08-31T01:17:12Z</updated><content type="html">&lt;p&gt;Exchange 2007 SP2 has a new set of ADAccess Performance counters that only shows performance data from domain controllers in the same site as the Exchange Server. This new object is &lt;strong&gt;MSExchange ADAccess Local Site Domain Controllers. &lt;/strong&gt;Previously, you had to use &lt;strong&gt;MSExchange ADAccess Domain Controllers(*)\Local site flag&lt;/strong&gt; to detect if the server was local via Performance monitor.&lt;/p&gt;  &lt;p&gt;Here is a listing of the new counters. They are very similar to the &lt;strong&gt;MSExchange ADAccess Domain Controllers&lt;/strong&gt; counters, but only for local DCs.&lt;/p&gt;  &lt;p&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP Read calls/Sec   &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP Search calls/Sec    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP Searches timed out per minute    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP Fatal errors per minute    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP Disconnects per minute    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\User searches failed per minute    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\Bind failures per minute    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\Long running LDAP operations/Min    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP Pages/Sec    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP VLV Requests/Sec    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\Number of outstanding requests    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\DsGetDcName elapsed time    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\gethostbyname elapsed time    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\Kerberos ticket lifetime    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP connection lifetime    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\Reachability bitmask    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\IsSynchronized flag    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\GC capable flag    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\PDC flag    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\SACL right flag    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\Critical Data flag    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\Netlogon flag    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\OS Version flag    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP Read Time    &lt;br /&gt;\MSExchange ADAccess Local Site Domain Controllers(*)\LDAP Search Time&lt;/p&gt;  &lt;p&gt;Unfortunately. upgrading to SP2 from an earlier service pack does not reload the &lt;strong&gt;MSExchange ADAccess&lt;/strong&gt; counters, so you will have to do this manually. If you are installing Exchange using the SP2 binaries, you will have these new counters by default. To reload the &lt;strong&gt;MSExchange ADAccess&lt;/strong&gt; counters, do the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Ensure that no other monitoring software is currently collecting performance counter data&lt;/li&gt;    &lt;li&gt;Open a command prompt and change directory to the \Program Files\Microsoft\Exchange Server\Bin\perf\AMD64 directory&lt;/li&gt;    &lt;li&gt;To unload the performance counters, type the following:     &lt;br /&gt;&lt;strong&gt;unlodctr “MSExchange ADAccess”&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;To Reload the counters, type the following:     &lt;br /&gt;&lt;strong&gt;loadcounter dscperf.ini&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Restart the Exchange Services to successfully reload the counters. &lt;strong&gt;Note: &lt;/strong&gt;This step is very important as Exchange opens file handles to the original counters that can only be reloaded with the restart of the Exchange Services.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For all of you that are collecting performance counters via WMI, you may notice that these new counters will not appear to be loaded. You can verify this by running &lt;strong&gt;perfmon/wmi &lt;/strong&gt;to see if they are there. If they are not, you can transfer the PDH settings over to WMI by running &lt;strong&gt;wmiadap /f.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!!&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3278108" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.technet.com/mikelag/archive/tags/Exchange+2007/default.aspx" /><category term="Counters" scheme="http://blogs.technet.com/mikelag/archive/tags/Counters/default.aspx" /></entry><entry><title>Exchange 2007 SP2 Auditing Whitepaper</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/08/25/exchange-2007-sp2-auditing-whitepaper.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/08/25/exchange-2007-sp2-auditing-whitepaper.aspx</id><published>2009-08-26T02:37:01Z</published><updated>2009-08-26T02:37:01Z</updated><content type="html">&lt;p&gt;Exchange 2007 SP2 has introduced some new Mailbox Access Auditing features to help log events when users access folders and messages either in their own mailbox or another users mailbox. I wrote a whitepaper on these new features at &lt;a title="http://technet.microsoft.com/en-us/library/ee331009.aspx" href="http://technet.microsoft.com/en-us/library/ee331009.aspx"&gt;http://technet.microsoft.com/en-us/library/ee331009.aspx&lt;/a&gt;. This new access auditing will log accesses to messages and folders which some customers have been wanting for a long time. So if you attempt to access another users folder and open or read a message, Exchange will now log events in the new Exchange auditing log on the server. This only shows you the path of access to message and folders, but does not specifically log deletions of messages in users folders.&lt;/p&gt;  &lt;p&gt;The whitepaper also discusses how you can setup auditing to track configuration changes to Exchange related objects in Active Directory, so that if an administrator made a change to an Exchange configuration object that caused an outage, these events will now be logged on the domain controllers security event log. If your DC’s are Windows 2008, you can see what the previous values were and what the newly changed value is, so if you need to change it back to the way it was before the outage, you have a rolling log of all of these changes.&lt;/p&gt;  &lt;p&gt;If you have some time and wanted to read more about it, see the above link for more details. This took a lot of time and effort on my part to pull this together and test most of the configuration auditing pieces to ensure that we were logging the correct data. Hope you enjoy it.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3276906" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Auditing" scheme="http://blogs.technet.com/mikelag/archive/tags/Auditing/default.aspx" /></entry><entry><title>Exchange 2007 Memory usage and helpful troubleshooting tips</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/08/20/exchange-2007-memory-usage-and-helpful-troubleshooting-tips.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/08/20/exchange-2007-memory-usage-and-helpful-troubleshooting-tips.aspx</id><published>2009-08-20T22:58:26Z</published><updated>2009-08-20T22:58:26Z</updated><content type="html">&lt;p&gt;In support, we get a lot of statements stating that Exchange is using all or most of the memory on a given server. Some may say that is a bad thing, but for Exchange 2007 that is actually a good thing. In this blog, I would like to explain some of the misconceptions of Exchange’s memory usage with relationship to overall/allocated memory and the Paging file and it’s usage. I previously blogged about Exchange 2007 memory usage at &lt;a title="Understanding Exchange 2007 Memory Usage and its use of the Paging File" href="http://msexchangeteam.com/archive/2008/08/06/449484.aspx"&gt;Understanding Exchange 2007 Memory Usage and its use of the Paging File&lt;/a&gt;, but it appears that more clarification is needed in this area. I am also going to show some real world screenshots of customers actual perfmon log files that show good and bad behavior and how this might help you in troubleshooting what type of a memory issue you might have, if any.&lt;/p&gt;  &lt;p&gt;So let’s start with the paging file and it’s usage as that appears to be a common question that comes up all of the time. Some of the questions stem around PF Usage in Task Manager as shown below on a Windows 2003 server and server monitoring software reporting this as a problem. PF Usage in Task Manager is the total number committed pages in the system. This is not how much is currently being used, it is merely the amount of page file space that has been allocated should the OS need to page out currently committed bytes&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_thumb.png" width="425" height="435" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In Windows 2008, Task Manager now shows different terminology as PF Usage has been removed and has been replaced with just the word Memory&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_thumb_1.png" width="427" height="417" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There are other counters that show PF usage as well, one is &lt;strong&gt;Paging File\% Usage&lt;/strong&gt; which shows overall usage and &lt;strong&gt;Process\Page File Bytes&lt;/strong&gt; which shows per process Page file allocation. The % Usage counter is about the same as what Task Manager &lt;strong&gt;PF Usage&lt;/strong&gt; shows. It is just the amount of space that has been allocated should committed bytes need to get paged out and doesn’t indicate if the PF is currently being utilized. &lt;strong&gt;Paging File\% Usage&lt;/strong&gt; is a counter that monitoring software commonly shows that could be a potential problem, but in all reality it might not be. Other factors needs to be looked at other than the amount of page file usage to get a clear indication if there is truly a problem or not.&lt;/p&gt;  &lt;p&gt;Generally, Page file usage should remain under 80% at all times, but there are times when the OS needs to make use of the paging file and one example is a working set trim operation. The following picture shows an example of this working set trim operation for store.exe where the &lt;strong&gt;Memory\% PF Usage &lt;/strong&gt;shows that we increase the PF usage at the same time the working sets are getting trimmed to satisfy some other application or driver request for allocating a contiguous memory block. You will also notice that PF usage never really bounces back either after something like this happens and remains around a sustained average for the remainder of the server being online or until the server is rebooted. Unless you are getting close to the max &lt;strong&gt;Memory\% Committed Bytes In Use&lt;/strong&gt;, we shouldn’t be too concerned with the PF Usage unless we are seeing some high paging activity going on.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_24.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_thumb_11.png" width="567" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;With that said, you would not use &lt;strong&gt;PF usage&lt;/strong&gt; in Task Manager or &lt;strong&gt;Paging File\% Usage&lt;/strong&gt; to determine if the paging file is currently being used. What you would use to monitor this is the amount of &lt;strong&gt;Memory\Pages/Sec&lt;/strong&gt; that are occurring. This counter is a combination of both &lt;strong&gt;Memory\Pages Input/sec&lt;/strong&gt; and &lt;strong&gt;Memory\Pages Output/Sec&lt;/strong&gt; counters which also includes access to the system cache for file based operations to resolve hard page faults. Hard page faults occur when a page from a process is requested but does not exist in memory. This then means that we have to pull that data directly from the paging or backing file. If the page is elsewhere in memory, then this is called a soft fault. These two counters will help you understand if you are writing data (Pages Output) to the Paging file or you are reading data (Pages Input) from the paging file which might be affecting overall Exchange Server performance. Hard Page Faults can result is significant delays in processing data on the server.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;&lt;u&gt;Counter Definitions          &lt;br /&gt;&lt;/u&gt;&lt;/font&gt;Memory\Pages/Sec&lt;/strong&gt;&amp;#160; - Pages/sec is the rate at which pages are read from or written to disk to resolve hard page faults. This counter is a primary indicator of the kinds of faults that cause system-wide delays.&amp;#160; It is the sum of Memory\Pages Input/sec and Memory\Pages Output/sec.&amp;#160; It is counted in numbers of pages, so it can be compared to other counts of pages, such as Memory\Page Faults/sec, without conversion. It includes pages retrieved to satisfy faults in the file system cache (usually requested by applications) non-cached mapped memory files.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Memory\Pages Input/sec&lt;/strong&gt; - Pages Input/sec is the rate at which pages are read from disk to resolve hard page faults. Hard page faults occur when a process refers to a page in virtual memory that is not in its working set or elsewhere in physical memory, and must be retrieved from disk. When a page is faulted, the system tries to read multiple contiguous pages into memory to maximize the benefit of the read operation. Compare the value of Memory\\Pages Input/sec to the value of&amp;#160; Memory\\Page Reads/sec to determine the average number of pages read into memory during each read operation.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Memory\Pages Output/Sec&lt;/strong&gt; - Pages Output/sec is the rate at which pages are written to disk to free up space in physical memory. Pages are written back to disk only if they are changed in physical memory, so they are likely to hold data, not code. A high rate of pages output might indicate a memory shortage. Windows writes more pages back to disk to free up space when physical memory is in short supply.&amp;#160; This counter shows the number of pages, and can be compared to other counts of pages, without conversion.&lt;/p&gt;  &lt;p&gt;Recommended guidance states that the size of the paging file should be RAM+10MB for optimal performance and should be of static size and not system managed. Having a paging file set to system managed could cause page file fragmentation which could affect performance in memory pressure conditions, but Exchange generally should not be making use of the paging file for normal operations. If virtual memory is shown to be problematic or high due to other applications on the servers requiring it, you can increase the size of the paging file to RAM * 1.5 to help alleviate some of this memory pressure on the server to help back all of the committed pages in memory. If you are still having problems at this point, check for potential memory leaks within the processes on the server.&lt;/p&gt;  &lt;p&gt;High paging in excess of 10,000/sec or more could indicate severe memory pressure or a working set trimming problem that I talked about previously in &lt;a title="http://blogs.technet.com/mikelag/archive/2007/12/19/working-set-trimming.aspx" href="http://blogs.technet.com/mikelag/archive/2007/12/19/working-set-trimming.aspx"&gt;http://blogs.technet.com/mikelag/archive/2007/12/19/working-set-trimming.aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The amount of available memory is another question that comes up regularly. The main performance counter to monitor for available memory is &lt;strong&gt;Memory\Available MBytes.&lt;/strong&gt; This is the amount of physical memory that is available for process or system use. It is the sum of Free, Zero, and Standby (cached) page lists. If you are on a Windows 2008 server and run Process Explorer viewing System Information, you will see these page lists referenced. Available RAM on any given Exchange 2007 server should not go below 100MB. After crossing the 100MB threshold, you are putting your server in a state vulnerable for working set trims when the Virtual Memory manager needs to process a memory allocation request in which sufficient RAM is not available to service that request. Another counter to check to cross correlate why available memory is low is &lt;strong&gt;Memory\System Cache Resident Bytes&lt;/strong&gt;. &lt;strong&gt;Memory\System Cache Resident Bytes&lt;/strong&gt; is part of the overall System cache which is viewable via the &lt;strong&gt;Memory\Cache Bytes&lt;/strong&gt; counter. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_30.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_thumb_14.png" width="570" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The above picture is a depiction of how System cache can affect available memory leading up to a working set trim. Notice in yellow that the Store cache remains consistent prior to the trim, so we know that Exchange did not cause this, but rather some other application. This could be some application making use of the file cache causing this increase. A simple file copy operation of a very large file from this server to another server will cause this problem. You can tame this system cache problem by using the Windows Dynamic Cache service shown at &lt;a title="http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx" href="http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx"&gt;http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx&lt;/a&gt;. In the above case, it was Antivirus software making use of memory mapped files.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If available RAM is about 100MB, please do not RDP in to the server and fire up the EMC for administration purposes. This will exhaust all RAM on the server and cause working set trim issues. Got to love that one, eh? &lt;/p&gt;  &lt;p&gt;Next, I would like to talk about Committed Memory. There are two main counters that I look at when troubleshooting memory related issues to determine if we are truly running out of memory on a server. These counters are &lt;strong&gt;Memory\Committed Bytes&lt;/strong&gt; and &lt;strong&gt;Memory\Commit Limit&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Memory\Committed Bytes&lt;/strong&gt; is the amount of committed virtual memory, in bytes. Committed memory is the physical memory which has space reserved on the disk paging file(s). This counter displays the last collected value and is not an average. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Memory\Commit Limit&lt;/strong&gt; is the amount of virtual memory that can be committed without having to extend the paging file(s).&amp;#160; It is measured in bytes. Committed memory is the physical memory which has space reserved on the disk paging files. There can be one paging file on each logical drive). If the paging file(s) are be expanded, this limit increases accordingly.&amp;#160; This counter displays the last collected value and is not an average. The Commit Limit is calculated by taking the amount of total RAM and adding that to the Paging File sizes. This sum will give you your overall Commit Limit on any given server. &lt;/p&gt;  &lt;p&gt;There are a few ways to view the current values of the Commit Limit and Committed Bytes. In Task Manager, you could view the &lt;strong&gt;Commit Charge (K)&lt;/strong&gt; area as shown in the above screenshot. You can view these counters in Perfmon, and of course using Process Explorer shown below.     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_28.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_thumb_13.png" width="378" height="368" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Real World Scenarios&lt;/h4&gt;  &lt;p&gt;Now that we have all of this knowledge, let’s take a look at some real world examples here.&lt;/p&gt;  &lt;p&gt;The below picture shows a normal working server where the Store working set remains consistent throughout the lifetime of the store process due to the cache being warmed up or fully populated. This is where you get maximum performance from your Exchange server since you are caching all of the data in memory instead of having to rely on paging information to/from the disks. You will also notice that available memory is just under 2GB. The amount of committed bytes is also no where close to the Commit limit on the server. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_thumb_5.png" width="569" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The following example shows that our Committed Bytes is just about equal to the overall Commit Limit on the server. Any new memory allocations could be failing causing instability of your Exchange server. This problem was attributed to an incorrectly configured paging file on the server.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_thumb_7.png" width="570" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The next example shows an actual Store memory leak. As you can see, the Committed Bytes (blue), Private Bytes (pink) and Virtual Bytes (yellow) for Store is also increasing upward to the overall Commit Limit (green). This occurred due to a recursive operation within the store process exhausting all of the memory on the server. A recursive operation can be thought of a process that is being performed where one of the operations is to repeat the process. This is similar to a loop with no ending or a way to break out of the loop.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_18.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/Exchange2007thePagingFileandMe_D39A/image_thumb_8.png" width="568" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I hope this clears up some of the misconceptions behind&amp;#160; the command phrase “Exchange is using all the memory”.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3275386" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /></entry><entry><title>The Case of the Mysterious Exchange Server Hang</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/08/04/the-case-of-the-mysterious-exchange-server-hang.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/08/04/the-case-of-the-mysterious-exchange-server-hang.aspx</id><published>2009-08-04T16:45:17Z</published><updated>2009-08-04T16:45:17Z</updated><content type="html">&lt;p&gt;Recently we had a case in which an Exchange 2003 server would hang and no longer accept any new RPC connections to the Information Store. The rest of the server seemed to be operating just fine, but it was the Store that was ultimately having the problems.&lt;/p&gt;  &lt;p&gt;I took a look at the perfmon data that was provided and didn’t see anything out of the ordinary except for a small amount of RPC Operations taking place on the server. The server did look like it was processing data though, so this was quite intriguing to me now. I did notice that one DC had a number outstanding LDAP requests for an extended period of time as shown below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/TheCaseoftheMysteriousExchangeServerHang_6F5E/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/TheCaseoftheMysteriousExchangeServerHang_6F5E/image_thumb.png" width="244" height="217" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We ended up taking some dumps of the Store, IIS processes, and LSASS to see what might be going on. The store and IIS dumps were not that interesting. Looking at the LSASS dumps was an eye opener. We saw that over 150 threads were hung up calling (SECUR32!CALLSPM) in to the Security Provider Manager (SPM). The beginning of the stacks were showing secur32!LsaAcceptSecurityContext calls which were mostly client authentication calls to the server. More info on the AcceptSecurityContext calls can be found &lt;a href="http://msdn.microsoft.com/en-us/library/aa374703(VS.85).aspx"&gt;here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There was almost 200 other threads that were calling netlogon!NlpUserValidateHigher which essentially means that we are trying to send a user validation request to a higher authority for authentication requests over the secure channel. Once we accept this validation request, we then attempt to connect to the DC over RPC to handle the request. Debug analysis can be found on Dave Goldman’s blog &lt;a href="http://blogs.msdn.com/dgoldman/archive/2009/08/04/the-case-of-the-mysterious-exchange-server-hang.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;By default, Netlogon only allows 2 concurrent API calls for these authentication requests which is controlled by a semaphore. If the 2 semaphore objects are tied up waiting for a response from the DC, all other requests will start queuing, thus having this mysterious hang affect on the Exchange Server. This was our problem since the debug analysis showed that we hit our maximum of 2 concurrent requests most likely to an overloaded DC, leaving a backlog of requests for authentication traffic. This request queue is controlled by the &lt;a title="MaxConcurrentApi" href="http://www.microsoft.com/resources/documentation/Windows/2000/server/reskit/en-us/Default.asp?url=/resources/documentation/Windows/2000/server/reskit/en-us/regentry/83816.asp"&gt;MaxConcurrentApi&lt;/a&gt; setting. Each request has a default timeout of 45 seconds, so if there were requests that were timing out, this is surely going to cause some delays for other users. On healthy servers with good network connectivity, these authentication requests are extremely fast.&lt;/p&gt;  &lt;p&gt;At this point, we knew that we were tied up in authentication calls to DC’s, but we couldn’t find out what users were trying to logon which were taking the most amount of time. The debug information only shows a point in time. It is possible that a user could be trying to authenticate to a down-level domain across a slow WAN link, not sure at this time.&lt;/p&gt;  &lt;p&gt;To move forward, we enabled Netlogon Debug logging per &lt;a title="http://support.microsoft.com/kb/109626" href="http://support.microsoft.com/kb/109626"&gt;http://support.microsoft.com/kb/109626&lt;/a&gt; and let the problem occur again.&lt;/p&gt;  &lt;p&gt;We opened the netlogon.log file and started reviewing the information. Prior to the problem we can see that responses are returning in a timely manner. Notice the time intervals happen within the same second&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;07/31 11:36:11 [LOGON] SamLogon: Network logon of US\User1 from COMPUTER1 Entered      &lt;br /&gt;07/31 11:36:11 [LOGON] SamLogon: Network logon of US\User1 from COMPUTER1 Returns 0x0 &lt;/p&gt;    &lt;p&gt;07/31 11:36:11 [LOGON] SamLogon: Network logon of EUROPE\User2 from COMPUTER2 Entered      &lt;br /&gt;07/31 11:36:11 [LOGON] SamLogon: Network logon of EUROPE\User2 from COMPUTER2 Returns 0x0 &lt;/p&gt;    &lt;p&gt;07/31 11:36:11 [LOGON] SamLogon: Network logon of ASIA\User3 from COMPUTER3 Entered      &lt;br /&gt;07/31 11:36:11 [LOGON] SamLogon: Network logon of ASIA\User3 from COMPUTER3 Returns 0x0&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;As traffic increases, the response times are starting to get a little slower&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;07/31 11:53:56 [LOGON] SamLogon: Network logon of ASIA\User3 from COMPUTER3 Entered      &lt;br /&gt;07/31 11:54:14 [LOGON] SamLogon: Network logon of ASIA\User3 from COMPUTER3 Returns 0x0 &lt;/p&gt;    &lt;p&gt;07/31 11:53:57 [LOGON] SamLogon: Network logon of EUROPE\User2 from COMPUTER2 Entered      &lt;br /&gt;07/31 11:54:17 [LOGON] SamLogon: Network logon of EUROPE\User2 from COMPUTER2 Returns 0x0 &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now we see a response time right at 45 second timeout below&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;07/31 11:57:02 [LOGON] SamLogon: Network logon of EUROPE\User2 from COMPUTER2 Entered      &lt;br /&gt;07/31 11:57:47 [LOGON] SamLogon: Network logon of EUROPE\User2 from COMPUTER2 Returns 0x0 &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Here is where our first netlogon timeout hit&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;07/31 11:57:03 [LOGON] SamLogon: Network logon of ASIA\User3 from COMPUTER3 Entered      &lt;br /&gt;07/31 11:57:48 &lt;font color="#ff0000"&gt;&lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt; EXDOMAIN: NlAllocateClientApi timed out: 0 258       &lt;br /&gt;07/31 11:57:48&lt;font color="#ff0000"&gt; &lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt; EXDOMAIN: &lt;strong&gt;NlpUserValidateHigher: Can't allocate Client API slot.&lt;/strong&gt;       &lt;br /&gt;07/31 11:57:48 [SESSION] I_NetLogonGetAuthData called: (null) EXDOMAIN(Flags 0x1)&amp;#160; &lt;br /&gt;07/31 11:57:48 [LOGON] SamLogon: Network logon of ASIA\User3 from COMPUTER3 Returns 0xC000005E&lt;/p&gt;    &lt;p&gt;0xC000005E = &lt;font color="#ff0000"&gt;STATUS_NO_LOGON_SERVERS&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now we are seeing that we cannot allocate a Client API slow because the max request queue is busy servicing other requests &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;07/31 11:58:55 &lt;font color="#ff0000"&gt;&lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt;EXDOMAIN: NlAllocateClientApi timed out: 0 258       &lt;br /&gt;07/31 11:58:55 &lt;font color="#ff0000"&gt;&lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt; EXDOMAIN: &lt;b&gt;NlpUserValidateHigher: Can't allocate Client API slot&lt;/b&gt;. &lt;/p&gt;    &lt;p&gt;07/31 12:38:08 &lt;font color="#ff0000"&gt;&lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt; EXDOMAIN: NlAllocateClientApi timed out: 0 258       &lt;br /&gt;07/31 12:38:08 &lt;font color="#ff0000"&gt;&lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt; EXDOMAIN: &lt;strong&gt;NlpUserValidateHigher: Can't allocate Client API slot.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now we get to an actual DC timeout error as shown below.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;08/01 17:21:24 &lt;font color="#ff0000"&gt;&lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt; NlPrintRpcDebug: Couldn't get EEInfo for I_NetLogonSamLogonEx: 1761 (may be legitimate for 0xc0000064)       &lt;br /&gt;08/01 17:21:24 &lt;font color="#ff0000"&gt;&lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt; EXDOMAIN: NlFinishApiClientSession: timeout call to &lt;a href="file://\\DC1.domain.com"&gt;\\DC1.domain.com&lt;/a&gt;.&amp;#160; Count: 2       &lt;br /&gt;08/01 17:21:24 &lt;font color="#ff0000"&gt;&lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt; EXDOMAIN: NlFinishApiClientSession: dropping the session to &lt;a href="file://\\DC1.domain.com"&gt;\\DC1.domain.com&lt;/a&gt;       &lt;br /&gt;08/01 17:21:24 &lt;font color="#ff0000"&gt;&lt;strong&gt;[CRITICAL]&lt;/strong&gt;&lt;/font&gt; EXDOMAIN: NlSetStatusClientSession: Set connection status to c000005e&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;We can see clearly now that DC1 was having problems servicing authentication requests to this Exchange server. This does not always mean that the DC is overloaded, it could be a down level network trust that is really slow that is causing this problem, so additional investigation needs to be performed at this point. We just know that Exchange is the victim and the problem is elsewhere now.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Troubleshooting methodologies&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So what can we do at this point?&lt;/p&gt;  &lt;p&gt;We can test secure channels for different domains to see which domains might be failing. First we will need to obtain the DC in which the secure channel is currently formed on the Exchange server by running nlttest /sc_query:&amp;lt;domain&amp;gt; replacing domain with the domain name where the Exchange Server resides in.&lt;/p&gt;  &lt;p&gt;Once that DC is found, you will then run a command similar to the following for each of the domains:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;nltest /server: DC1&amp;#160;&amp;#160; /sc_query:ASIA      &lt;br /&gt;nltest /server: DC1&amp;#160;&amp;#160; /sc_query:EUROPE       &lt;br /&gt;nltest /server: DC1&amp;#160;&amp;#160; /sc_query:US&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This will help fish out any down level domains that could be causing authentication delays.&lt;/p&gt;  &lt;p&gt;You can also enable netlogon debug logging on the DC’s to help understand the traffic patterns there.&lt;/p&gt;  &lt;p&gt;Installing the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=09115420-8c9d-46b9-a9a5-9bffcd237da2&amp;amp;DisplayLang=en"&gt;&lt;strong&gt;Server Performance Advisor&lt;/strong&gt;&lt;/a&gt; on the Windows 2003 DC’s or using the &lt;strong&gt;Active Directory Diagnostics&lt;/strong&gt; Data Collector in the Windows 2008 &lt;strong&gt;Reliability and Performance monitor&lt;/strong&gt; will help fish out any potential bottlenecks.&lt;/p&gt;  &lt;p&gt;Take netmon captures and search for NetrLogonSamLogonEx entries for Netlogon requests&lt;/p&gt;  &lt;p&gt;For Windows 2003 servers, you can install the following hotfix to help track these type issues faster. This hotfix adds new performance counters to help track access to these semaphores better. Windows 2008 servers already have this built in to the OS&lt;/p&gt;  &lt;p&gt;New performance counters for Windows Server 2003 let you monitor the performance of Netlogon authentication    &lt;br /&gt;&lt;a title="http://support.microsoft.com/default.aspx/kb/928576" href="http://support.microsoft.com/default.aspx/kb/928576"&gt;http://support.microsoft.com/default.aspx/kb/928576&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The main ones you want to look at at the following&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Semaphore Holders:&lt;/strong&gt; How many threads on average are holding the client semaphore &lt;/p&gt;    &lt;p&gt;This is the number of threads trying to get a netlogon session to a DC that are Blocked. Blocked could be locked open by a process, network down, etc. when semaphore waiters is non 0, some local process is waiting on lsass for a response and the lsass thread is blocked. This correlates to the &lt;a title="MaxConcurrentApi" href="http://www.microsoft.com/resources/documentation/Windows/2000/server/reskit/en-us/Default.asp?url=/resources/documentation/Windows/2000/server/reskit/en-us/regentry/83816.asp"&gt;MaxConcurrentApi&lt;/a&gt; setting&lt;/p&gt;    &lt;p&gt;&lt;em&gt;By default this value should be less than 2 at any given time. If values about 2 are sustained, then either the Exchange server or DCs are overloaded.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Average Semaphore Hold Time&lt;/strong&gt;: The average wait time for a thread to acquire the semaphore &lt;/p&gt;    &lt;p&gt;&lt;em&gt;These values should normally be very quick. Longer hold times mean that a potential bottleneck is occurring.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Semaphore Waiters&lt;/strong&gt;: The average number of waiters waiting on the semaphore.&lt;/p&gt;    &lt;p&gt;&lt;em&gt;This value should remain at 0 at all times. Short bursty spikes are OK to see as that simply means that we had a large amount of requests which were handled in a short period of time.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In some instances on heavily loaded servers, you may want to adjust &lt;a title="MaxConcurrentApi" href="http://www.microsoft.com/resources/documentation/Windows/2000/server/reskit/en-us/Default.asp?url=/resources/documentation/Windows/2000/server/reskit/en-us/regentry/83816.asp"&gt;MaxConcurrentApi&lt;/a&gt; to a value of 5 on both the Exchange Servers and DC’s to help widen the pipe or increase the amount of auth requests that can occur at any given time. Bumping this setting up may help alleviate this problem altogether, but could also prolong the issue due to some other underlying issue that has now been masked. It’s always best to understand where the problem is coming from before making any major changes such as this which may increase overall processor utilization on the Exchange server and your domain controllers.&lt;/p&gt;  &lt;p&gt;In this instance, we set MaxConcurrentApi to 5 on the DC’s and Exchange Servers and this appears to have reduced the amount of occurrences of this problem.&lt;/p&gt;  &lt;p&gt;This particular problem not only affects Exchange servers, but also affects other applications such as ISA server. More information on this can be found &lt;a href="http://support.microsoft.com/kb/326040/"&gt;here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I hope this provides some insight in to some of the underlying dependency problems that you may seen in Exchange.&lt;/p&gt;  &lt;p&gt;That is all for now.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3270556" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /></entry><entry><title>How to collect per request Performance Stats for IIS on Exchange 2007</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/07/20/how-to-collect-per-request-performance-stats-for-iis-on-exchange-2007.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/07/20/how-to-collect-per-request-performance-stats-for-iis-on-exchange-2007.aspx</id><published>2009-07-20T15:59:09Z</published><updated>2009-07-20T15:59:09Z</updated><content type="html">&lt;p&gt;Ever had a time where you were trying to troubleshoot an IIS Performance related issue on Exchange 2007 and the built-in performance counters were not giving you the data that you needed to gain insight in to the problem? I know I have run in to these before and they are not always the easiest to track as we cannot see latencies at a per request level easily. &lt;/p&gt;  &lt;p&gt;As part of the default installation of Exchange 2007, you may have also seen IIS log entries similar to the following, but didn’t know what the appended IIS data meant.&lt;/p&gt;  &lt;p&gt;/owa/ev.owa oeh=1&amp;amp;ns=DatePicker&amp;amp;ev=GetFreeBusy&amp;amp;m=2009-04-01T00%3a00%3a00&amp;amp;fId=LgAAAADBC0ggZ4mHTKllH8Mc0937AQBmBiNCEaM7R53LcWBj0I1aAAAAAACrAAAC&amp;amp;prfltncy=98&amp;amp;prfrpccnt=6&amp;amp;prfrpcltncy=78&amp;amp;prfldpcnt=0&amp;amp;prfldpltncy=0&amp;amp;prfavlcnt=0&amp;amp;prfavlltncy=0&lt;/p&gt;  &lt;p&gt;The information I am calling out in this IIS Log request is prfltncy, prfrpccnt, prfrpcltncy, prfldpcnt, prfldpltncy, prfavlltncy. These entries are specific to latency entries at the end of each call that is being made. There may only be a handful of these throughout the logs by default.&lt;/p&gt;  &lt;p&gt;Luckily, there is a way to enable additional per request user tracing in to the IIS logs to help you with troubleshooting these performance type problems. This tracing will allow you to see per request latencies for OWA, RPC and Availability requests.&lt;/p&gt;  &lt;p&gt;To enable this additional logging, you would do the following:&lt;/p&gt;  &lt;p&gt;Go to &amp;quot;Program Files\Microsoft\Exchange Server\ClientAccess\OWA&amp;quot;. Edit web.config in Notepad. Add the following line of text under appSettings:    &lt;br /&gt;&amp;lt;add key=&amp;quot;CollectPerRequestPerformanceStats&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;After saving the web.config file, you should start seeing entries in the IIS logs similar to the above, but here is another log example:&lt;/p&gt;  &lt;p&gt;/owa/default.aspx modurl=7&amp;amp;prfltncy=84212&amp;amp;prfrpccnt=37&amp;amp;prfrpcltncy=84011&amp;amp;prfldpcnt=9&amp;amp;prfldpltncy=30&amp;amp;prfavlcnt=0&amp;amp;prfavlltncy=0&lt;/p&gt;  &lt;p&gt;In the above request, we can see that the RPC latencies are high (prfltncy=84212&amp;amp;prfrpccnt=37&amp;amp;prfrpcltncy=84011) , so this was most likely a bottleneck between the CAS and the backend Mailbox server. Now wasn’t that easy to determine where the potential bottleneck might lie?&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Per Request Tracing Legend      &lt;br /&gt;&lt;/u&gt;Prfltncy - Overall Performance Latencies for this request     &lt;br /&gt;Prfrpccnt - RPC request count     &lt;br /&gt;Prfrpcltncy - RPC Latencies     &lt;br /&gt;Prfldpcnt - LDAP request count     &lt;br /&gt;Prfldpltncy – LDAP Latencies    &lt;br /&gt;Prfavlltncy - Availability Latencies     &lt;br /&gt;    &lt;br /&gt;If you break one of these log requests down, here is the way you would look at this based on the first request example above. (Note: This was a call to get Free/Busy Data for a specific time period)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;prfltncy=98 - Overall Performance Latency for the request &lt;/li&gt;    &lt;li&gt;prfrpccnt=6&amp;amp;prfrpcltncy=78 - 6 RPC requests with a latency of 78ms &lt;/li&gt;    &lt;li&gt;prfldpcnt=0&amp;amp;prfldpltncy=0 - 0 LDAP requests with a latency of 0ms &lt;/li&gt;    &lt;li&gt;prfavlcnt=0&amp;amp;prfavlltncy=0 - 0 Availability requests with a latency of 0ms &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can use any log parser (ie.logparser.exe) of your choice to get further information, but this should help you understand some of the latencies down to a per request level. &lt;/p&gt;  &lt;p&gt;I hope this helps in your performance troubleshooting…..&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3266362" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /><category term="IIS Logs" scheme="http://blogs.technet.com/mikelag/archive/tags/IIS+Logs/default.aspx" /><category term="Client Access Server" scheme="http://blogs.technet.com/mikelag/archive/tags/Client+Access+Server/default.aspx" /><category term="Per Request Tracing" scheme="http://blogs.technet.com/mikelag/archive/tags/Per+Request+Tracing/default.aspx" /></entry><entry><title>Troubleshooting Exchange 2007 Store Log/Database growth issues</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/07/12/troubleshooting-store-log-database-growth-issues.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="2361" href="http://blogs.technet.com/mikelag/attachment/3263247.ashx" /><id>http://blogs.technet.com/mikelag/archive/2009/07/12/troubleshooting-store-log-database-growth-issues.aspx</id><published>2009-07-12T23:20:00Z</published><updated>2009-07-12T23:20:00Z</updated><content type="html">&lt;p mce_keep="true"&gt;One of the common issues we see in support is excessive Database and/or Transaction log growth problems. If you have ever run in to one of these issues, you will find that they are not always easy to troubleshoot as there are many tools that are needed to help understand where the problem might be coming from. Customers have asked why does the Server allow these type of operations to occur in the first place and why is the Exchange Server not resilient to this? That is not always an easy question to answer as there as so many variables as to why this may occur in the first place ranging from faulty Outlook Add-ins, Custom or 3rd party applications, corrupted rules, corrupted messages, online maintenance not running long enough to properly maintain your database, and the list goes on and on.&lt;/p&gt;  &lt;p&gt;Once an Outlook client has created a profile to the Exchange server, they pretty much have full reign to do whatever actions they want within that MAPI profile. This of course, will be controlled mostly by your Organizations mailbox and message size limits and some of the Client throttling or backoff features that are new to Exchange 2007. &lt;/p&gt;  &lt;p&gt;Since I have dealt with these type problems in great detail, I thought it would be helpful to share some troubleshooting steps with you that may help you collect, detect and mitigate these problems when and if you should see them. &lt;/p&gt;  &lt;h4&gt;General Troubleshooting&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Use &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9A49C22E-E0C7-4B7C-ACEF-729D48AF7BC9&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9A49C22E-E0C7-4B7C-ACEF-729D48AF7BC9&amp;amp;displaylang=en"&gt;Exchange User Monitor&lt;/a&gt; (Exmon) server side to determine if a specific user is causing the log growth problems.       &lt;br /&gt;      &lt;br /&gt;      &lt;ul&gt;       &lt;li&gt;Sort on &lt;b&gt;CPU (%)&lt;/b&gt; and look at the top 5 users that are consuming the most amount of CPU inside the Store process. Check the &lt;b&gt;Log Bytes&lt;/b&gt; column to verify for this log growth for a potential user. &lt;/li&gt;        &lt;li&gt;If that does not show a possible user, sort on the &lt;b&gt;Log Bytes&lt;/b&gt; column to look for any possible users that could be attributing to the log growth &lt;/li&gt;        &lt;li&gt;If it appears that the user in Exmon is a &lt;b&gt;?&lt;/b&gt;, then this is representative of a HUB/Transport related problem generating the logs. Query the message tracking logs using the Message Tracking Log tool in the Exchange Management Consoles Toolbox to check for any large messages that might be running through the system. See &lt;b&gt;&lt;a href="http://blogs.technet.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=6075&amp;amp;postid=3263247#MsgTrack" mce_href="http://blogs.technet.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=6075&amp;amp;postid=3263247#MsgTrack"&gt;step 5.9&lt;/a&gt; &lt;/b&gt;for a Powershell script to accomplish the same task. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;If suspected user is found via Exmon, then do one of the following:&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;Disable MAPI access to the users mailbox using the following steps (&lt;strong&gt;Recommended&lt;/strong&gt;):&lt;/p&gt;       &lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;           &lt;p&gt;Run &lt;strong&gt;Set-Casmailbox –Identity &amp;lt;Username&amp;gt; –MapiEnabled $False&lt;/strong&gt;&lt;/p&gt;         &lt;/li&gt;          &lt;li&gt;           &lt;p&gt;Move the mailbox to another Mailbox Store. &lt;strong&gt;Note: &lt;/strong&gt;This is necessary to disconnect the user from the store due to the Store Mailbox and DSAccess caches. Otherwise you could potentially be waiting for over 2 hours and 15 minutes for this setting to take effect. Moving the mailbox effectively kills the users MAPI session to the server and after the move, the users access to the store via a MAPI enabled client will be disabled.&lt;/p&gt;         &lt;/li&gt;       &lt;/ul&gt;        &lt;li&gt;         &lt;p&gt;Disable the users AD account temporarily&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Kill their TCP connection with &lt;b&gt;&lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx"&gt;TCPView&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Call the client to have them close Outlook in the condition state for immediate relief. &lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;If closing the client down or killing their sessions seems to stop the log growth issue, then we need to do the following to see if this is OST or Outlook profile related:&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;Have the user &lt;b&gt;launch Outlook while&lt;/b&gt; &lt;b&gt;holding down the control key&lt;/b&gt; which will prompt if you would like &lt;b&gt;to run Outlook in safe mode&lt;/b&gt;. If launching Outlook in safe mode resolves the log growth issue, then concentrate on what add-ins could be attributing to this problem.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;If you can gain access to the users machine, then do one of the following:&lt;/p&gt;          &lt;ol&gt;           &lt;li&gt;             &lt;p&gt;Launch Outlook to confirm the log file growth issue on the server.&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;If log growth is confirmed, do one of the following&lt;/p&gt;              &lt;ol&gt;               &lt;li&gt;                 &lt;p&gt;Check users Outbox for any messages. &lt;/p&gt;                  &lt;ol&gt;                   &lt;li&gt;                     &lt;p&gt;If user is running in &lt;strong&gt;Cached mode&lt;/strong&gt;, set the Outlook client to &lt;strong&gt;Work Offline.&lt;/strong&gt; Doing this will help stop the message being sent in the outbox and sometimes causes the message to NDR.&lt;/p&gt;                   &lt;/li&gt;                    &lt;li&gt;                     &lt;p&gt;If user is running in &lt;strong&gt;Online Mode&lt;/strong&gt;, then try moving the message to another folder to prevent Outlook or the HUB server from processing the message.&lt;/p&gt;                   &lt;/li&gt;                    &lt;li&gt;                     &lt;p&gt;After each one of the steps above, check the Exchange server to see if log growth has ceased&lt;/p&gt;                   &lt;/li&gt;                 &lt;/ol&gt;               &lt;/li&gt;                &lt;li&gt;                 &lt;p&gt;Call Microsoft Product Support to enable debug logging of the Outlook client to determine possible root cause.&lt;/p&gt;               &lt;/li&gt;             &lt;/ol&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;Follow the &lt;b&gt;Running Process Explorer&lt;/b&gt; instructions in the below article to dump out dlls that are running within the Outlook Process. Name the file username.txt. This helps check for any 3rd party Outlook Add-ins that may be causing the excessive log growth.                 &lt;br /&gt;                &lt;br /&gt;970920&amp;#160; Using Process Explorer to List dlls Running Under the Outlook.exe Process                 &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/970920" mce_href="http://support.microsoft.com/kb/970920"&gt;http://support.microsoft.com/kb/970920&lt;/a&gt;&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;Check the &lt;strong&gt;Sync Issues&lt;/strong&gt; folder for any errors that might be occurring&lt;/p&gt;           &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Let’s attempt to narrow this down further to see if the problem is truly in the OST or something possibly Outlook Profile related:&lt;/p&gt;          &lt;ol&gt;           &lt;li&gt;             &lt;p&gt;Run &lt;a href="http://support.microsoft.com/kb/287497" mce_href="http://support.microsoft.com/kb/287497"&gt;ScanPST&lt;/a&gt; against the users OST file to check for possible corruption.&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;With the Outlook client shut down, rename the users OST file to something else and then launch Outlook to recreate a new OST file. If the problem does not occur, we know the problem is within the OST itself.&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;If renaming the OST causes the problem to recur again, then recreate the users profile to see if this might be profile related. &lt;/p&gt;           &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Ask Questions: &lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;Is the user using any type of mobile device?&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Question the end user if at all possible to understand what they might have been doing at the time the problem started occurring. It’s possible that a user imported a lot of data from a PST file which could cause log growth server side or there was some other erratic behavior that they were seeing based on a user action.&lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;If Exmon &lt;b&gt;does not provide&lt;/b&gt; the data that is necessary to get root cause, then do the following:&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;&lt;b&gt;Check current queues&lt;/b&gt; against all HUB Transport Servers for stuck or queued messages             &lt;br /&gt;            &lt;br /&gt;&lt;font color="#800000"&gt;get-exchangeserver | where {$_.IsHubTransportServer -eq &amp;quot;true&amp;quot;} | Get-Queue | where {$_.Deliverytype –eq “MapiDelivery”} | Select-Object Identity, NextHopDomain, Status, MessageCount | export-csv&amp;#160; HubQueues.csv&lt;/font&gt;             &lt;br /&gt;            &lt;br /&gt;Review queues for any that are in retry or have a lot of messages queued.             &lt;br /&gt;            &lt;br /&gt;&lt;strong&gt;Export out message sizes in MB&lt;/strong&gt; in all Hub Transport queues to see if any large messages are being sent through the queues.             &lt;br /&gt;            &lt;br /&gt;&lt;font color="#800000"&gt;get-exchangeserver | where {$_.ishubtransportserver -eq &amp;quot;true&amp;quot;} | get-message –resultsize unlimited | Select-Object Identity,Subject,status,LastError,RetryCount,queue,@{Name=&amp;quot;Message Size MB&amp;quot;;expression={$_.size.toMB()}} | sort-object -property size –descending | export-csv HubMessages.csv&amp;#160;&amp;#160; &lt;br /&gt;&lt;/font&gt;            &lt;br /&gt;&lt;strong&gt;Export out message sizes in Bytes&lt;/strong&gt; in all Hub Transport queues.             &lt;br /&gt;            &lt;br /&gt;&lt;font color="#800000"&gt;get-exchangeserver | where {$_.ishubtransportserver -eq &amp;quot;true&amp;quot;} | get-message –resultsize unlimited | Select-Object Identity,Subject,status,LastError,RetryCount,queue,size | sort-object -property size –descending | export-csv HubMessages.csv&lt;/font&gt; &lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;&lt;strong&gt;Check Users Outbox &lt;/strong&gt;for any large, looping, or stranded messages that might be affecting overall Log Growth.&lt;/p&gt;          &lt;p&gt;&lt;font color="#800000"&gt;get-mailbox -ResultSize Unlimited| Get-MailboxFolderStatistics -folderscope Outbox | Sort-Object Foldersize -Descending | select-object identity,name,foldertype,itemsinfolder,@{Name=&amp;quot;FolderSize MB&amp;quot;;expression={$_.folderSize.toMB()}} | export-csv OutboxItems.csv              &lt;br /&gt;&lt;/font&gt;            &lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; This does not get information for users that are running in cached mode.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Utilize the &lt;b&gt;MSExchangeIS Client\Jet Log Record Bytes/sec&lt;/b&gt; and &lt;b&gt;MSExchangeIS Client\RPC Operations/sec&lt;/b&gt; Perfmon counters to see if there is a particular client protocol that may be generating excessive logs. If a particular protocol mechanism if found to be higher than other protocols for a sustained period of time, then possibly shut down the service hosting the protocol. For example, if &lt;b&gt;Exchange Outlook Web Access&lt;/b&gt; is the protocol generating potential log growth, then stopping the World Wide Web Service (W3SVC) to confirm that log growth stops. If log growth stops, then collecting IIS logs from the CAS/MBX Exchange servers involved will help provide insight in to what action the user was performing that was causing this occur. &lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Run the following command from the Management shell to &lt;b&gt;export out current user operation rates&lt;/b&gt;:             &lt;br /&gt;            &lt;br /&gt;&lt;b&gt;To export to CSV File:              &lt;br /&gt;&lt;/b&gt;            &lt;br /&gt;&lt;font color="#800000"&gt;get-logonstatistics |select-object username,Windows2000account,identity,messagingoperationcount,otheroperationcount,progressoperationcount,streamoperationcount,tableoperationcount,totaloperationcount | where {$_.totaloperationcount -gt 1000} | sort-object totaloperationcount -descending| export-csv LogonStats.csv              &lt;br /&gt;&lt;/font&gt;            &lt;br /&gt;&lt;b&gt;To view realtime data:              &lt;br /&gt;              &lt;br /&gt;&lt;/b&gt;&lt;font color="#800000"&gt;get-logonstatistics |select-object username,Windows2000account,identity,messagingoperationcount,otheroperationcount,progressoperationcount,streamoperationcount,tableoperationcount,totaloperationcount | where {$_.totaloperationcount -gt 1000} | sort-object totaloperationcount -descending| ft&lt;/font&gt;             &lt;br /&gt;            &lt;br /&gt;&lt;b&gt;Key things to look for:              &lt;br /&gt;&lt;/b&gt;In the below example, the Administrator account was storming the testuser account with email.             &lt;br /&gt;You will notice that there are 2 users that are active here, one is the Administrator submitting all of the messages and then you will notice that the Windows2000Account references a HUB server referencing an Identity of testuser. The HUB server also has *no* UserName either, so that is a giveaway right there. This can give you a better understanding of what parties are involved in these high rates of operations             &lt;br /&gt;            &lt;br /&gt;&lt;font color="#800000"&gt;UserName : Administrator              &lt;br /&gt;Windows2000Account : DOMAIN\Administrator               &lt;br /&gt;Identity : /o=First Organization/ou=First Administrative Group/cn=Recipients/cn=Administrator               &lt;br /&gt;MessagingOperationCount : 1724               &lt;br /&gt;OtherOperationCount : 384               &lt;br /&gt;ProgressOperationCount : 0               &lt;br /&gt;StreamOperationCount : 0               &lt;br /&gt;TableOperationCount : 576               &lt;br /&gt;TotalOperationCount : 2684               &lt;br /&gt;              &lt;br /&gt;UserName :               &lt;br /&gt;Windows2000Account : DOMAIN\E12-HUB$               &lt;br /&gt;Identity : /o= First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=testuser               &lt;br /&gt;MessagingOperationCount : 630               &lt;br /&gt;OtherOperationCount : 361               &lt;br /&gt;ProgressOperationCount : 0               &lt;br /&gt;StreamOperationCount : 0               &lt;br /&gt;TableOperationCount : 0               &lt;br /&gt;TotalOperationCount : 1091&lt;/font&gt;&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;&lt;strong&gt;Enable Perfmon/Perfwiz&lt;/strong&gt; logging on the server. Collect data through the problem times and then review for any irregular activities. You can grab some pre-canned Perfmon import files at &lt;a title="http://blogs.technet.com/mikelag/archive/2008/05/02/perfwiz-replacement-for-exchange-2007.aspx" href="http://blogs.technet.com/mikelag/archive/2008/05/02/perfwiz-replacement-for-exchange-2007.aspx" mce_href="http://blogs.technet.com/mikelag/archive/2008/05/02/perfwiz-replacement-for-exchange-2007.aspx"&gt;http://blogs.technet.com/mikelag/archive/2008/05/02/perfwiz-replacement-for-exchange-2007.aspx&lt;/a&gt; to make collecting this data easier.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Run &lt;strong&gt;ExTRA&lt;/strong&gt; (Exchange Troubleshooting Assistant) via the Toolbox in the Exchange Management Console to look for any possible Functions (via &lt;strong&gt;FCL&lt;/strong&gt; Logging) that may be consuming Excessive times within the store process. This needs to be launched during the problem period. &lt;a href="http://blogs.technet.com/mikelag/archive/2008/08/21/using-extra-to-find-long-running-transactions-inside-store.aspx" mce_href="http://blogs.technet.com/mikelag/archive/2008/08/21/using-extra-to-find-long-running-transactions-inside-store.aspx"&gt;http://blogs.technet.com/mikelag/archive/2008/08/21/using-extra-to-find-long-running-transactions-inside-store.aspx&lt;/a&gt; shows how to use FCL logging only, but it would be best to include Perfmon, Exmon, and FCL logging via this tool to capture the most amount of data. &lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Dump the store process during the time of the log growth. (Use this as a last measure once all prior activities have been exhausted and prior to calling Microsoft for assistance. These issues are sometimes intermittent, and the quicker you can obtain any data from the server, the better as this will help provide Microsoft with information on what the underlying cause might be.)&lt;/p&gt;          &lt;ol&gt;           &lt;li&gt;             &lt;p&gt;Download the &lt;b&gt;Current Release&lt;/b&gt; version of the Windows debuggers from &lt;a href="http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx" mce_href="http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx"&gt;http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx&lt;/a&gt; and select a custom installation and change the directory to install the debuggers to c:\debuggers and finish the installation.&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;Open the command prompt and change in to the c:\Debuggers directory&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;Type &lt;b&gt;cscript adplus.vbs –hang –pn store –quiet –o d:\DebugData&lt;/b&gt;. Note: -o switch signifies the location in which you want to store the debug data that has sufficient drive space. &lt;b&gt;Important:&lt;/b&gt; Once this has launched, a minimized CDB window will open. Please wait for this to complete and do not close this window as this will disappear once the dump has completed.&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;Wait 2 minutes and perform the same dump operation again.&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;Open a case with Microsoft Product Support Services to get this data looked at.&lt;/p&gt;           &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Collect a portion of Store transaction log files (100 would be good) during the problem period and parse them following the directions in &lt;a href="http://blogs.msdn.com/scottos/archive/2007/11/07/remix-using-powershell-to-parse-ese-transaction-logs.aspx" mce_href="http://blogs.msdn.com/scottos/archive/2007/11/07/remix-using-powershell-to-parse-ese-transaction-logs.aspx"&gt;http://blogs.msdn.com/scottos/archive/2007/11/07/remix-using-powershell-to-parse-ese-transaction-logs.aspx&lt;/a&gt; to look for possible patterns such as high pattern counts for IPM.Appointment. This will give you a high level overview if something is looping or a high rate of messages being sent. &lt;strong&gt;Note:&lt;/strong&gt; This tool may or may not provide any benefit depending on the data that is stored in the log files, but sometimes will show data that is MIME encoded that will help with your investigation&lt;/p&gt;         &lt;a title="MsgTrack" name="MsgTrack"&gt;&lt;/a&gt;&lt;/li&gt;        &lt;li&gt;&lt;a title="MsgTrack" name="MsgTrack"&gt;&lt;/a&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;Export out Message tracking log data from affected MBX server             &lt;br /&gt;            &lt;br /&gt;&lt;strong&gt;&lt;font size="2"&gt;Method 1&lt;/font&gt;               &lt;br /&gt;&lt;/strong&gt;Download the attached ExLogGrowthCollector.zip file to this post and extract to the MBX server that experienced the issue. Run ExLogGrowthCollector.ps1 from the Exchange Management Shell. Enter in the MBX server name that you would like to trace, the Start and End times and click on the Collect Logs button.             &lt;br /&gt;            &lt;br /&gt;&lt;a href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/TroubleshootingStoreLogDatabasegrowthiss_6A7F/image_2.png" mce_href="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/TroubleshootingStoreLogDatabasegrowthiss_6A7F/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/TroubleshootingStoreLogDatabasegrowthiss_6A7F/image_thumb.png" width="495" height="329" mce_src="http://blogs.technet.com/blogfiles/mikelag/WindowsLiveWriter/TroubleshootingStoreLogDatabasegrowthiss_6A7F/image_thumb.png" /&gt;&lt;/a&gt;             &lt;br /&gt;            &lt;br /&gt;Note: What this script does is to export out all mail traffic to/from the specified mailbox server across all HUB servers between the times specified. This helps provide insight in to any large or looping messages that might have been sent that could have caused the log growth issue.             &lt;br /&gt;            &lt;br /&gt;&lt;strong&gt;&lt;font size="2"&gt;Method 2                &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;Copy/Paste the following data in to notepad, save as msgtrackexport.ps1 and then run this on the affected Mailbox Server. Open in Excel for review. This is similar to the GUI version, but requires manual editing to get it to work.&lt;/p&gt;          &lt;p&gt;&lt;font color="#800000"&gt;#Export Tracking Log data from affected server specifying Start/End Times              &lt;br /&gt;              &lt;br /&gt;Write-host &amp;quot;Script to export out Mailbox Tracking Log Information&amp;quot;               &lt;br /&gt;Write-Host &amp;quot;#####################################################&amp;quot;               &lt;br /&gt;Write-Host               &lt;br /&gt;$server = Read-Host &amp;quot;Enter Mailbox server Name&amp;quot;               &lt;br /&gt;$start = Read-host &amp;quot;Enter start date and time in the format of MM/DD/YYYY hh:mmAM&amp;quot;               &lt;br /&gt;$end = Read-host &amp;quot;Enter send date and time in the format of MM/DD/YYYY hh:mmPM&amp;quot;               &lt;br /&gt;$fqdn = $(get-exchangeserver $server).fqdn               &lt;br /&gt;Write-Host &amp;quot;Writing data out to csv file..... &amp;quot;               &lt;br /&gt;Get-ExchangeServer | where {$_.IsHubTransportServer -eq &amp;quot;True&amp;quot; -or $_.name -eq &amp;quot;$server&amp;quot;} | Get-MessageTrackingLog -ResultSize Unlimited -Start $start -End $end&amp;#160; | where {$_.ServerHostname -eq $server -or $_.clienthostname -eq $server -or $_.clienthostname -eq $fqdn} | sort-object totalbytes -Descending | export-csv MsgTrack.csv -NoType               &lt;br /&gt;Write-Host &amp;quot;Completed!! You can now open the MsgTrack.csv file in Excel for review&amp;quot;&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font color="#800000"&gt;             &lt;br /&gt;&lt;/font&gt;&lt;strong&gt;&lt;font size="2"&gt;Method 3&lt;/font&gt;&lt;/strong&gt;             &lt;br /&gt;You can also use the &lt;strong&gt;Process Tracking Log Tool &lt;/strong&gt;at &lt;a href="http://msexchangeteam.com/archive/2008/02/07/448082.aspx" mce_href="http://msexchangeteam.com/archive/2008/02/07/448082.aspx"&gt;http://msexchangeteam.com/archive/2008/02/07/448082.aspx&lt;/a&gt; to provide some very useful reports.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Save off a copy of the application/system logs from the affected server and review them for any events that could attribute to this problem&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Enable IIS extended logging for CAS and MB server roles to add the &lt;b&gt;sc-bytes&lt;/b&gt; and &lt;b&gt;cs-bytes&lt;/b&gt; fields to track large messages being sent via IIS protocols and to also track usage patterns.&lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;Proactive monitoring and mitigation efforts&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Increase Diagnostics Logging for the following objects depending on what stores are being affected:      &lt;br /&gt;      &lt;br /&gt;      &lt;ul&gt;       &lt;li&gt;MSExchangeIS\Mailbox\Rules &lt;/li&gt;        &lt;li&gt;MSExchangeIS\PublicFolders\Rules          &lt;br /&gt;          &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Enable Client Side monitoring per &lt;a href="http://technet.microsoft.com/en-us/library/cc540465.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc540465.aspx"&gt;http://technet.microsoft.com/en-us/library/cc540465.aspx&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Create a monitoring plan using MOM/SCOM to alert when the amount of &lt;b&gt;Log Bytes&lt;/b&gt; being written hit a specific threshold and then alert the messaging team for further action. There are thresholds that are a part of the Exchange 2007 Management Pack that could help alert to these type situations before the problem gets to a point of taking a database offline. Here are 2 examples of this.       &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;ESE Log Byte Write/sec MOM threshold        &lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;Warning Event        &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb218522.aspx" mce_href="http://technet.microsoft.com/en-us/library/bb218522.aspx"&gt;http://technet.microsoft.com/en-us/library/bb218522.aspx&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;Error Event        &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb218733.aspx" mce_href="http://technet.microsoft.com/en-us/library/bb218733.aspx"&gt;http://technet.microsoft.com/en-us/library/bb218733.aspx&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;If an alert is raised, then perform an operation to start collecting data. &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Ensure &lt;a href="http://support.microsoft.com/kb/958701" mce_href="http://support.microsoft.com/kb/958701"&gt;http://support.microsoft.com/kb/958701&lt;/a&gt; is installed at a minimum for each Outlook 2003 client to address known log/database growth issues for users streaming data to the information store that have exceeded message size limits. This fix also addresses a problem where clients could copy a message to their inbox from a PST that during the sync process could exceed mailbox limits, thus causing excessive log growth problems on the server.         &lt;br /&gt;        &lt;br /&gt;These hotfixes make use of the &lt;b&gt;PR_PROHIBIT_SEND_QUOTA &lt;/b&gt;and &lt;b&gt;PR_MAX_SUBMIT_MESSAGE_SIZE&lt;/b&gt;&amp;#160; which is referenced in &lt;a href="http://support.microsoft.com/kb/894795" mce_href="http://support.microsoft.com/kb/894795"&gt;http://support.microsoft.com/kb/894795&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Additional Outlook Log Growth fixes:        &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/957142" mce_href="http://support.microsoft.com/kb/957142"&gt;http://support.microsoft.com/kb/957142&lt;/a&gt;         &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/936184" mce_href="http://support.microsoft.com/kb/936184"&gt;http://support.microsoft.com/kb/936184&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Implement &lt;strong&gt;minimum Outlook Client versions&lt;/strong&gt; that can connect to the Exchange server via the Disable MAPI clients registry key server side. See &lt;a href="http://technet.microsoft.com/en-us/library/bb266970.aspx" mce_href="http://technet.microsoft.com/en-us/library/bb266970.aspx"&gt;http://technet.microsoft.com/en-us/library/bb266970.aspx&lt;/a&gt; for more information.       &lt;br /&gt;      &lt;br /&gt;To disable clients less than Outlook 2003 SP2, use the following entries on an Exchange 2007 server       &lt;br /&gt;&amp;quot;-5.9.9;7.0.0-11.6568.6567&amp;quot;       &lt;p&gt;Setting this to exclude Outlook client versions less than Outlook 2003 SP2 will help protect against stream issues to the store. Reason being is that Outlook 2003 SP2 and later understand the new quota properties that were introduced in to the store in &lt;a href="http://support.microsoft.com/kb/894795" mce_href="http://support.microsoft.com/kb/894795"&gt;http://support.microsoft.com/kb/894795&lt;/a&gt;. Older clients have no idea what these new properties are, so if a user sent a 600MB attachment on a message, it would stream the entire message to the store generating excessive log files and then get NDR’ed once the message size limits were checked. With SP2 installed, the Outlook client will first check to see if the attachment size is over the set quota for the organization and immediately stop the send with a warning message on the client and prevent the stream from being sent to the server.&lt;/p&gt;      &lt;p&gt;Allowing any clients older than SP2 to connect to the store is leaving the Exchange servers open for a growth issue.        &lt;br /&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;If &lt;strong&gt;Entourage clients &lt;/strong&gt;are being utilized, then implement the &lt;b&gt;MaxRequestEntityAllowed&lt;/b&gt; property in &lt;a href="http://support.microsoft.com/kb/935848" mce_href="http://support.microsoft.com/kb/935848"&gt;http://support.microsoft.com/kb/935848&lt;/a&gt;&amp;#160; to address a known issue where sending a message over the size limit could potentially create log growth for a database.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Check to ensure &lt;strong&gt;File Level Antivirus exclusions &lt;/strong&gt;are set correctly for both files and processes per &lt;a href="http://technet.microsoft.com/en-us/library/bb332342.aspx" mce_href="http://technet.microsoft.com/en-us/library/bb332342.aspx"&gt;http://technet.microsoft.com/en-us/library/bb332342.aspx&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Enable Content Conversion tracing on all HUB servers per &lt;a href="http://technet.microsoft.com/en-us/library/bb397226.aspx" mce_href="http://technet.microsoft.com/en-us/library/bb397226.aspx"&gt;http://technet.microsoft.com/en-us/library/bb397226.aspx&lt;/a&gt; . This will help log any failed conversion attempts that may be causing the log growth problem to occur.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;If &lt;strong&gt;POP3 or IMAP4 clients &lt;/strong&gt;are connecting to specific servers, then implementing&lt;strong&gt; Protocol Logging &lt;/strong&gt;for each on the servers that may be making use of these protocols will help log data to a log file where these protocols are causing excessive log growth spurts. See &lt;a href="http://technet.microsoft.com/en-us/library/aa997690.aspx" mce_href="http://technet.microsoft.com/en-us/library/aa997690.aspx"&gt;http://technet.microsoft.com/en-us/library/aa997690.aspx&lt;/a&gt; on how to enable this logging.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Ensure &lt;strong&gt;Online maintenance &lt;/strong&gt;is completing a pass for each database within the past week or two. Query Application event logs for the ESE events series 700 through 704 to clarify. If log growth issues occur during online maintenance periods, this could be normal as Exchange shuffles data around in the database. We just need to ensure that we keep this part in mind during these log growth problems.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Check for any excessive&lt;strong&gt; ExCDO warning events &lt;/strong&gt;related to appointments in the application log on the server. (Examples are 8230 or 8264 events). &lt;a href="http://support.microsoft.com/kb/947014" mce_href="http://support.microsoft.com/kb/947014"&gt;http://support.microsoft.com/kb/947014&lt;/a&gt; is just one example of this issue. If recurrence meeting events are found, then try to regenerate calendar data server side via a process called POOF.&amp;#160; See &lt;a href="http://blogs.msdn.com/stephen_griffin/archive/2007/02/21/poof-your-calender-really.aspx" mce_href="http://blogs.msdn.com/stephen_griffin/archive/2007/02/21/poof-your-calender-really.aspx"&gt;http://blogs.msdn.com/stephen_griffin/archive/2007/02/21/poof-your-calender-really.aspx&lt;/a&gt; for more information on what this is.       &lt;br /&gt;      &lt;br /&gt;Event Type: Warning       &lt;br /&gt;Event Source: EXCDO       &lt;br /&gt;Event Category: General       &lt;br /&gt;Event ID: 8230       &lt;br /&gt;Description: An inconsistency was detected in username@domain.com: /Calendar/&amp;lt;calendar item&amp;gt; .EML. The calendar is being repaired. If other errors occur with this calendar, please view the calendar using Microsoft Outlook Web Access. If a problem persists, please recreate the calendar or the containing mailbox.       &lt;p&gt;Event Type: Warning        &lt;br /&gt;Event ID : 8264         &lt;br /&gt;Category : General         &lt;br /&gt;Source : EXCDO         &lt;br /&gt;Type : Warning         &lt;br /&gt;Message : The recurring appointment expansion in mailbox &amp;lt;someone's address&amp;gt; has taken too long. The free/busy information for this calendar may be inaccurate. This may be the result of many very old recurring appointments. To correct this, please remove them or change their start date to a more recent date.         &lt;br /&gt;        &lt;br /&gt;&lt;strong&gt;Important:&lt;/strong&gt; If 8230 events are consistently seen on an Exchange server, have the user delete/recreate that appointment to remove any corruption&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Add additional store logging per &lt;a href="http://support.microsoft.com/kb/254606" mce_href="http://support.microsoft.com/kb/254606"&gt;http://support.microsoft.com/kb/254606&lt;/a&gt; to add more performance counter data to be collected with Perfmon. This will allow us to utilize counters such as&lt;b&gt; ImportDeleteOpRate&lt;/b&gt; and&lt;strong&gt; SaveChangesMessageOpRates &lt;/strong&gt;which allows us to see what these common log growth rates are.&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Recommend &lt;strong&gt;forcing end dates&lt;/strong&gt; on recurring meetings.&amp;#160; This can be done through the usage of the registry key DisableRecurNoEnd (DWORD).       &lt;br /&gt;      &lt;br /&gt;For Outlook 2003:       &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/952144" mce_href="http://support.microsoft.com/kb/952144"&gt;http://support.microsoft.com/kb/952144&lt;/a&gt;       &lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Preferences       &lt;br /&gt;      &lt;br /&gt;For Outlook 2007:       &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/955449" mce_href="http://support.microsoft.com/kb/955449"&gt;http://support.microsoft.com/kb/955449&lt;/a&gt;       &lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Preferences       &lt;br /&gt;Value: 1 to Enable, 0 to Disable       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Implement &lt;strong&gt;LimitEmbeddingDepth&lt;/strong&gt; on the Exchange servers as outlined in KB &lt;a href="http://support.microsoft.com/kb/833607" mce_href="http://support.microsoft.com/kb/833607"&gt;833607 &lt;/a&gt;to prevent log growth due to recursion looping. &lt;strong&gt;Note: &lt;/strong&gt;This article states this if for Exchange 2000-2003, but the key is also still valid in Exchange 2007 per source code&lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;Known Issues&lt;/h4&gt; &lt;strong&gt;&lt;/strong&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Exchange Server        &lt;br /&gt;        &lt;br /&gt;SP1 Release Update 9 fixes&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/959559"&gt;959559&lt;/a&gt; - Transaction log files grow unexpectedly in an Exchange Server 2007 Service Pack 1 mailbox server on a computer that is running Windows Server 2008 &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;ul&gt;     &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/925252"&gt;925252&lt;/a&gt; - The Store.exe process uses almost 100 percent of CPU resources, and the size of the public folder store increases quickly in Exchange Server 2007 &lt;/li&gt;      &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/961124"&gt;961124&lt;/a&gt; - Some messages are stuck in the Outbox folder or the Drafts folder on a computer that is running Exchange Server 2007 Service Pack 1         &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/970725"&gt;970725&lt;/a&gt; - Public folder replication messages stay in the local delivery queue and cause an Exchange Server 2007 Service Pack 1 database to grow quickly &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;SP1 Release Update 8 fixes&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/960775" mce_href="http://support.microsoft.com/kb/960775"&gt;960775&lt;/a&gt; - You receive a &amp;quot;Message too large for this recipient&amp;quot; NDR that has the original message attached after you restrict the Maximum Message Send Size value in Exchange Server 2007 &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;SP1 Release Update 7 fixes&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/957124" mce_href="http://support.microsoft.com/kb/957124"&gt;957124&lt;/a&gt; - You do not receive an NDR message even though your meeting request cannot be sent successfully to a recipient &lt;/li&gt;      &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/960775" mce_href="http://support.microsoft.com/kb/960775"&gt;960775&lt;/a&gt; - You receive a &amp;quot;Message too large for this recipient&amp;quot; NDR that has the original message attached after you restrict the Maximum Message Send Size value in Exchange Server 2007 &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;SP1 Release Update 1 fixes&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/947014" mce_href="http://support.microsoft.com/kb/947014"&gt;947014&lt;/a&gt; - An Exchange Server 2007 mailbox server randomly generates many transaction logs in an Exchange Server 2007 Service Pack 1 environment &lt;/li&gt;      &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/943371"&gt;943371&lt;/a&gt; - Event IDs 8206, 8213, and 8199 are logged in an Exchange Server 2007 environment         &lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Outlook 2007&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/970944" mce_href="http://support.microsoft.com/kb/970944"&gt;970944&lt;/a&gt; – Installing this hotfix package addresses and issue where log files are generated unexpectedly when a user is running Outlook 2007 in the cached Exchange mode and sends an e-mail message to the recipients who have a corrupted e-mail address and/or e-mail address&amp;#160; &lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Outlook 2003&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/958701" mce_href="http://support.microsoft.com/kb/958701"&gt;958701&lt;/a&gt; - Description of the Outlook 2003 Post-Service Pack 3 hotfix package (Engmui.msp, Olkintl.msp, Outlook.msp): October 28, 2008 &lt;/li&gt;      &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/936184" mce_href="http://support.microsoft.com/kb/936184"&gt;936184&lt;/a&gt; - Description of the Outlook 2003 post-Service Pack 3 hotfix package: December 14, 2007 &lt;/li&gt;      &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/897247" mce_href="http://support.microsoft.com/kb/897247"&gt;897247&lt;/a&gt; - Description of the Microsoft Office Outlook 2003 post-Service Pack 1 hotfix package: May 2, 2005         &lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Entourage&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/935848" mce_href="http://support.microsoft.com/kb/935848"&gt;935848&lt;/a&gt; - Various performance issues occur when you use Entourage for Mac to send large e-mail messages to an Exchange 2007 server         &lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Windows 2008&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/955612"&gt;955612&lt;/a&gt; - The &amp;quot;LCMapString&amp;quot; function may return incorrect mapping results for some languages in Windows Server 2008 and in Windows Vista &lt;/li&gt;   &lt;/ul&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3263247" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Log Growth" scheme="http://blogs.technet.com/mikelag/archive/tags/Log+Growth/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.technet.com/mikelag/archive/tags/Exchange+2007/default.aspx" /></entry><entry><title>Windows Desktop Search and the implications on WAN performance</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/05/04/windows-desktop-search-and-the-implications-on-wan-performance.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/05/04/windows-desktop-search-and-the-implications-on-wan-performance.aspx</id><published>2009-05-04T17:26:29Z</published><updated>2009-05-04T17:26:29Z</updated><content type="html">&lt;p&gt;Windows Desktop search (WDS) is a great tool to help you to search through the unwieldy plethora of documents or emails that you may have scattered across your desktop. With the addition of 3rd party IFilter add-ins, it makes it even easier to find what you are looking for.&lt;/p&gt;  &lt;p&gt;As of version 3.01, Desktop search has disabled the indexing of online mailbox on a default installation due to performance implications on the Exchange server side. Companies sometimes have the need to still run Outlook in Online mode due to security requirements of not having local OST’s, or they need real-time email for business purposes. With some of those requirements, companies have the need to also have fast message/document retrieval which Windows Desktop Search can surely do without a problem.&lt;/p&gt;  &lt;p&gt;WDS does have some group policy settings that will now allow online indexing of mailboxes and a listing of all the settings for WDS 4 is at &lt;a href="http://technet.microsoft.com/en-us/library/cc732491.aspx"&gt;http://technet.microsoft.com/en-us/library/cc732491.aspx&lt;/a&gt;. This setting that allows indexing of online mode Outlook profiles is &lt;strong&gt;&amp;quot;Enable Indexing uncached Exchange Folders&amp;quot;&lt;/strong&gt;. Once this is deployed via group policy, WDS will now start indexing online mode Outlook profiles. This of course could put a huge strain on the server as all of the users data is being indexed if deployed to a large user base. Recommended guidance states that you should deploy this policy to smaller subsets of users to prevent possible server performance problems. This is similar guidance to what Microsoft recommends for cached mode deployments.&lt;/p&gt;  &lt;p&gt;With that said, I would like to now take us down a road where certain combinations of WDS policies can not only affect Exchange server side performance, but can also have serious implications on WAN performance. If you currently have a centralized Exchange deployment and users are accessing all of their email across WAN circuits, read on.&lt;/p&gt;  &lt;p&gt;Let’s say you have an administrative assistant running in cached mode that needs to gain access to another users complete mailbox with a requirement that data in that mailbox is easily discoverable. This requirement can be easily met by using Windows Desktop Search and is very common in law firms. A default Outlook 2007 installation will have the &lt;strong&gt;&amp;quot;Download shared folders (exclude mail folders)&amp;quot;&lt;/strong&gt; option selected for their user profile, so if this assistant had previously opened a another users non-email folder such as Contacts, Calendar and Tasks, WDS will index those items without any issue. This feature unfortunately does not meet the complete requirement as we need to index all items in the other users mailbox. After Full mailbox permissions is added for this assistant, they can now add this other users mailbox to their profile to view their data.&amp;#160; Once you do this, you will now see that WDS will still not find any email items unless you have selected the folder in the mailbox and then performing the search. Everything so far is the default behavior.&lt;/p&gt;  &lt;p&gt;WDS has a feature which will allow you to index online delegate mailboxes and is deployed via the GPO setting &lt;strong&gt;&amp;quot;Enable Indexing of online delegate Mailboxes&amp;quot;&lt;/strong&gt;.&amp;#160; Once this setting is deployed, any user that has another users mail related folder in their profile will now get indexed. So that seems like a good thing, no? Well, we all know that indexing any type of mailbox in online mode will increase overall performance on the Exchange server and if users are doing this over a WAN, you will now see increased WAN utilization while WDS is indexing this data making direct RPC calls to the Exchange server. If this setting was deployed to a large user base while there are a number of profiles that have other mailboxes added to their profile, you could potentially saturate this network circuit. Your network administrator at this point would obviously not be too happy and your users would then start complaining that email access is really slow or Outlook may get disconnected due to this saturation. Our best practices dictate that this setting should be deployed to smaller user bases at a time to prevent increased client traffic to the Exchange Server.&lt;/p&gt;  &lt;p&gt;Imagine deploying this policy to 1000 users all accessing Exchange across a WAN and all have an added mailbox to their profile. By default, WDS will only index 120 items per minute which should help keep the Indexing traffic under control. If all users workstations were indexing this amount of data at a time, we would be seeing about 120,000 items per minute of traffic.&amp;#160; Couple that with any attachments that WDS is configured to index for such as PDF or Word documents, and this will make for a very bad network day.&lt;/p&gt;  &lt;p&gt;There are ways to change the amount of items that are indexed per minute by modifying the GPO setting &lt;strong&gt;&amp;quot;Enable Throttling Online Mailboxes&amp;quot;&lt;/strong&gt;. Setting this policy to a lower value will help reduce the amount of items that are indexed per minute per mailbox and should also help keep some of the network traffic down to a minimum. The caveat here is that it will take longer to index these mailboxes. Keep in mind that is still going to be direct RPC traffic to the Exchange server with minimal amount of throttling.&lt;/p&gt;  &lt;p&gt;To help reduce some of this overhead, Outlook 2007 has a registry entry ( &lt;strong&gt;CacheOthersMail&lt;/strong&gt; ) that will allow you to cache other users mail folders in an OST file. This was first introduced in &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;955572" target="_blank"&gt;KB955572&lt;/a&gt; and requires that you disable the downloading of headers. This was then rolled up in to the Outlook 2007 post SP1 Sept. 24, 2008 hotfix package (&lt;a href="http://support.microsoft.com/kb/957909/"&gt;957909&lt;/a&gt;) . If the indexing of delegate mailboxes policy has been deployed to these users and you add this Outlook registry key, you will now see a mixture of traffic being generated by WDS. One is direct RPC traffic to the Exchange server and the other is Outlook &lt;em&gt;FxGetBuffer&lt;/em&gt; function calls or otherwise known as Outlook sync (ICS). The Outlook sync traffic will become more prevalent over time as the other users mailbox is cached locally in the OST file. &lt;em&gt;FxGetBuffer&lt;/em&gt; calls are a lot less expensive than direct RPC calls to the Exchange server, so deploying the &lt;strong&gt;CacheOthersMail&lt;/strong&gt; registry key may help with overall WAN utilization during initial indexing. You still need to plan on increased WAN traffic as synch traffic coming from many clients could also cause potential WAN degradation issues.&lt;/p&gt;  &lt;h2&gt;WDS Registry Reference&lt;/h2&gt;  &lt;p&gt;Registry data to index data in your mailbox if you have an Online mode profile   &lt;br /&gt;Key: HKLM\software\policies\Microsoft\windows\windows search    &lt;br /&gt;DWORD: PreventIndexingUncachedExchangeFolders    &lt;br /&gt;Value: 0    &lt;br /&gt;    &lt;br /&gt;Registry data to index shared mailboxes:    &lt;br /&gt;Key: HKLM\software\policies\Microsoft\windows\windows search    &lt;br /&gt;DWORD: EnableIndexingDelegateMailboxes    &lt;br /&gt;Value: 1&lt;/p&gt; Registry data to change the amount of mail items that are indexed per minute.  &lt;br /&gt;Key: HKLM\software\policies\Microsoft\windows\windows search  &lt;br /&gt;DWORD: EnableThrottlingOnlineMailboxes  &lt;br /&gt;Value: 120  &lt;br /&gt;Accepted Values (Default: 120, Min: 6, Max:600)  &lt;br /&gt;  &lt;br /&gt;  &lt;h2&gt;Outlook Registry Reference&lt;/h2&gt;  &lt;p&gt;Registry data to Cache others users mail data in an OST   &lt;br /&gt;&lt;strong&gt;One-off users&lt;/strong&gt;    &lt;br /&gt;Key: HKCU\Software\Microsoft\Office\12.0\Outlook\Cached Mode    &lt;br /&gt;DWORD: CacheOthersMail    &lt;br /&gt;Value: 1&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;GPO deployed     &lt;br /&gt;&lt;/strong&gt;Key: HKCU\Software\Policies\Microsoft\Office\12.0\Outlook\Cached Mode     &lt;br /&gt;DWORD: CacheOthersMail    &lt;br /&gt;Value: 1&lt;/p&gt;  &lt;p&gt;One of the most taxing combinations of WDS settings with relationship to Exchange Server and WAN performance is deploying &lt;strong&gt;&amp;quot;Enable Indexing uncached Exchange Folders&amp;quot; &lt;/strong&gt;and&lt;strong&gt; &amp;quot;Enable Indexing of online delegate Mailboxes&amp;quot; &lt;/strong&gt;simultaneously. If you also index attachments which is the default behavior, this could put increased burden on network resources and could cause considerable downtime for your users. Deploying these settings needs to be carefully planned out especially in centralized Exchange installations to prevent the situations that I describe.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3234884" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /><category term="Outlook" scheme="http://blogs.technet.com/mikelag/archive/tags/Outlook/default.aspx" /><category term="Networking" scheme="http://blogs.technet.com/mikelag/archive/tags/Networking/default.aspx" /><category term="GroupPolicy" scheme="http://blogs.technet.com/mikelag/archive/tags/GroupPolicy/default.aspx" /></entry><entry><title>Outlook 2007 Performance Improvements Hotfix</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/03/12/outlook-2007-performance-improvements-hotfix.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/03/12/outlook-2007-performance-improvements-hotfix.aspx</id><published>2009-03-12T18:40:14Z</published><updated>2009-03-12T18:40:14Z</updated><content type="html">&lt;p&gt;If you haven't heard already, we have released a Pre-SP2 hotfix that help improve Outlook performance and responsiveness in a big way. Here is an excerpt from the article.&lt;/p&gt;  &lt;h6&gt;&lt;font size="2"&gt;Performance improvements     &lt;br /&gt;&lt;/font&gt;&lt;/h6&gt;  &lt;p&gt;Performance and responsiveness are key concerns for all our customers. That is why we made the large performance tuning and optimization changes that are included in Office suite Service Pack 2 (SP2). &lt;/p&gt;  &lt;p&gt;Outlook 2007 SP2 delivers performance improvements in four major areas: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;General Responsiveness      &lt;br /&gt;SP2 reduces I/O disk usage and UI response time. &lt;/li&gt;    &lt;li&gt;Startup      &lt;br /&gt;SP2 removes long operations from initial startup. &lt;/li&gt;    &lt;li&gt;Shutdown      &lt;br /&gt;SP2 makes Outlook exit predictably despite pending activities. &lt;/li&gt;    &lt;li&gt;Folder/View Switch      &lt;br /&gt;SP2 improves view rendering and folder switching. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Before you go out applying this on your machine, you need to be warned of the first startup experience as we rebuild the tables and indexes in your OST. If you have a large OST, this is going to take some time, but I can tell you that the wait is well worth it. It is actually an entirely new experience at least for me anyway's since I have a good deal of email item counts in my folders. Switching between folders with large item counts is no longer painful and this hotfix provides immediate viewing of these folders.&lt;/p&gt;  &lt;p&gt;Grab the hotfix from the following article:&lt;/p&gt;  &lt;p&gt;Description of the Outlook 2007 hotfix package (Outlook.msp): February 24, 2009    &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/961752"&gt;http://support.microsoft.com/kb/961752&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Check out the plethora of improvements in this release in the following article as there are many.&lt;/p&gt;  &lt;p&gt;Outlook 2007 improvements in the February 2009 cumulative update    &lt;br /&gt;&lt;a title="http://support.microsoft.com/default.aspx?scid=kb;EN-US;968009&amp;#13;&amp;#10;" href="http://support.microsoft.com/kb/968009"&gt;http://support.microsoft.com/kb/968009&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hope this helps tame some of the larger mailboxes that you have.&lt;/p&gt;  &lt;p&gt;Mike    &lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3212096" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /><category term="Outlook" scheme="http://blogs.technet.com/mikelag/archive/tags/Outlook/default.aspx" /></entry><entry><title>Client RPC Dialog box questionnaire for Administrators</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/02/12/client-rpc-dialog-box-questionnaire-for-administrators.aspx" /><link rel="enclosure" type="application/msword" length="112128" href="http://blogs.technet.com/mikelag/attachment/3201356.ashx" /><id>http://blogs.technet.com/mikelag/archive/2009/02/12/client-rpc-dialog-box-questionnaire-for-administrators.aspx</id><published>2009-02-12T20:00:00Z</published><updated>2009-02-12T20:00:00Z</updated><content type="html">&lt;P&gt;There are times when you are troubleshooting an Exchange Server issue where it appears that the server is performing OK, but the users are still complaining of the dreaded RPC dialog box and hangs in their client. Most of the time an Exchange administrator or helpdesk personnel needs to speak directly with the end user to determine what actions they were taking at the time the RPC dialog box occurs. Since there are numerous ways which can promote this dialog box, an administrator needs to understand specific actions that users were taking at the time of the problem. A lot of the times, this has nothing to do with server side performance problems, but rather something that is installed on the client or something the user is doing.&lt;/P&gt;
&lt;P&gt;I have created a simple document in which the users can answer to allow you to gain some insight in to a users actions and their habits that are aggravating this RPC dialog box.&lt;/P&gt;
&lt;P&gt;The document is password protected so that the fields are checkable. The password currently is "Microsoft".&lt;/P&gt;
&lt;P&gt;Please provide feedback regarding this document to help make this better. &lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Mike&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3201356" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /><category term="Outlook" scheme="http://blogs.technet.com/mikelag/archive/tags/Outlook/default.aspx" /></entry><entry><title>New Windows Dynamic Cache Service for 64-bit Windows 2003 servers</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/02/09/new-windows-dynamic-cache-service-for-64-bit-windows-2003-servers.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/02/09/new-windows-dynamic-cache-service-for-64-bit-windows-2003-servers.aspx</id><published>2009-02-09T23:04:49Z</published><updated>2009-02-09T23:04:49Z</updated><content type="html">&lt;p&gt;If you've ever had an issue where low memory conditions were causing working set trimming issues due to excessive use of the System File Cache, then we have just released a new service that can be used to help alleviate this issue called &lt;strong&gt;Microsoft Windows Dynamic Cache Service&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;More information regarding this new service can be found &lt;a href="http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx"&gt;here&lt;/a&gt; and a direct link to download this new service can be found &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&amp;amp;displaylang=en"&gt;here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;With Exchange 2007 servers also running in to these issues which I blogged about &lt;a href="http://blogs.technet.com/mikelag/archive/2008/10/17/steps-to-help-mitigate-excessive-paging-and-working-set-trimming-issues.aspx"&gt;here&lt;/a&gt;, this service could potentially allow other 3rd party services to play nice with Exchange 2007 which may be consuming more than it's fair share of the System File Cache.&lt;/p&gt;  &lt;p&gt;So if you find that Exchange performance is suffering because of some other service taking up overall memory in the System File Cache, then this service may be just for you.&lt;/p&gt;  &lt;p&gt;Hope this helps with some of your performance related issues.&lt;/p&gt;  &lt;p&gt;Mike&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3199532" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /><category term="Tools" scheme="http://blogs.technet.com/mikelag/archive/tags/Tools/default.aspx" /></entry><entry><title>Performance Counter Collection Tools for Exchange</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/02/02/performance-counter-collection-tools-for-exchange.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/02/02/performance-counter-collection-tools-for-exchange.aspx</id><published>2009-02-03T00:09:03Z</published><updated>2009-02-03T00:09:03Z</updated><content type="html">&lt;p&gt;I've created a Category called Perfwiz in which you can easily find all Perfwiz versions. Click on &lt;a title="http://blogs.technet.com/mikelag/archive/tags/Perfwiz/default.aspx" href="http://blogs.technet.com/mikelag/archive/tags/Perfwiz/default.aspx"&gt;http://blogs.technet.com/mikelag/archive/tags/Perfwiz/default.aspx&lt;/a&gt; to get you there.&lt;/p&gt;  &lt;p&gt;Have a good one!!&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3196053" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /></entry><entry><title>Updated Exchange 2003 Perfwiz</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/mikelag/archive/2009/02/02/updated-exchange-2003-perfwiz.aspx" /><id>http://blogs.technet.com/mikelag/archive/2009/02/02/updated-exchange-2003-perfwiz.aspx</id><published>2009-02-02T23:18:31Z</published><updated>2009-02-02T23:18:31Z</updated><content type="html">&lt;p&gt;For all of you folks out there still hanging on to Exchange 2003 and dealing with performance issues, I have taken the liberty to update the Perfwiz data counter collection to the latest/greatest counters as the old Perfwiz tool on our download site is severely outdated.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;u&gt;Exchange 2003 Update Perfwiz&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Extract the contents of &lt;a href="http://expal.members.winisp.net/E2k3_Perfwiz.zip"&gt;E2k3_Perfwiz.zip&lt;/a&gt; to your Exchange server. &lt;/li&gt;    &lt;li&gt;Open Performance Monitor &lt;/li&gt;    &lt;li&gt;Expand Performance Logs and Alerts and select Counter Logs. &lt;/li&gt;    &lt;li&gt;Right click Counter logs and select &amp;quot;New Log Settings From&amp;quot;. Select the htm file that was extracted in Step 1. Click OK &lt;/li&gt;    &lt;li&gt;Select the Log Files tab and click the Configure button &lt;/li&gt;    &lt;li&gt;For the Log location, change this to a location of your choice. Click Ok &lt;/li&gt;    &lt;li&gt;Click OK to save the Performance Counter log. &lt;/li&gt;    &lt;li&gt;To start the Perfmon log, right click &amp;quot;Exchange_2003_Perfwiz&amp;quot; and then select Start. &lt;/li&gt;    &lt;li&gt;Let this run during the problem period where performance is affected &lt;/li&gt;    &lt;li&gt;Stop the perfmon log by right-clicking &amp;quot;Exchange_2003_Perfwiz&amp;quot; and selecting Stop &lt;/li&gt;    &lt;li&gt;Make arrangements with a CSS representative to get the files analyzed. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="3"&gt;Counter Collection List&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;\Database ==&amp;gt; Instances(*)\*   &lt;br /&gt;\Database(*)\*    &lt;br /&gt;\Epoxy(*)\*    &lt;br /&gt;\Exchange Server HTTP Extensions(*)\*    &lt;br /&gt;\LogicalDisk(*)\*    &lt;br /&gt;\Memory\*    &lt;br /&gt;\Microsoft Exchange ActiveSync\*    &lt;br /&gt;\MSExchange Intelligent Message Filter(*)\*    &lt;br /&gt;\MSExchange Oledb Events(*)\*    &lt;br /&gt;\MSExchange Oledb Resource(*)\*    &lt;br /&gt;\MSExchange Sender ID(*)\*    &lt;br /&gt;\MSExchange Web Mail(*)\*    &lt;br /&gt;\MSExchangeActiveSyncNotify OmaPush\*    &lt;br /&gt;\MSExchangeAL(*)\*    &lt;br /&gt;\MSExchangeDSAccess Caches(*)\*    &lt;br /&gt;\MSExchangeDSAccess Domain Controllers(*)\*    &lt;br /&gt;\MSExchangeDSAccess Processes(*)\*    &lt;br /&gt;\MSExchangeIMAP4(*)\*    &lt;br /&gt;\MSExchangeIS Mailbox(*)\*    &lt;br /&gt;\MSExchangeIS Public(*)\*    &lt;br /&gt;\MSExchangeIS\*    &lt;br /&gt;\MSExchangeMTA Connections(*)\*    &lt;br /&gt;\MSExchangeMTA\*    &lt;br /&gt;\MSExchangeOMA\*    &lt;br /&gt;\MSExchangeSA - NSPI Proxy\*    &lt;br /&gt;\MSExchangeSRS\*    &lt;br /&gt;\MSExchangeTransport Filter Sink(*)\*    &lt;br /&gt;\MSExchangeTransport Store Driver(*)\*    &lt;br /&gt;\Network Interface(*)\*    &lt;br /&gt;\Paging File(*)\*    &lt;br /&gt;\PhysicalDisk(*)\*    &lt;br /&gt;\Process(*)\*    &lt;br /&gt;\Processor(*)\*    &lt;br /&gt;\Server\*    &lt;br /&gt;\SMTP NTFS Store Driver(*)\*    &lt;br /&gt;\SMTP Routing(*)\*    &lt;br /&gt;\SMTP Server(*)\*    &lt;br /&gt;\System\*    &lt;br /&gt;\Web Service(*)\*&lt;/p&gt;  &lt;p&gt;Enjoy!!&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3196021" width="1" height="1"&gt;</content><author><name>mikelag</name><uri>http://blogs.technet.com/members/mikelag.aspx</uri></author><category term="Performance" scheme="http://blogs.technet.com/mikelag/archive/tags/Performance/default.aspx" /><category term="Tools" scheme="http://blogs.technet.com/mikelag/archive/tags/Tools/default.aspx" /><category term="Perfwiz" scheme="http://blogs.technet.com/mikelag/archive/tags/Perfwiz/default.aspx" /></entry></feed>