<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Ajith's blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/ajiths_blog/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/ajiths_blog/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:22:46 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Windows 10 policies not showing up in GPMC or GPEDIT even though appropriate ADMX and ADML files are imported</title>
      <link>https://docs.microsoft.com/archive/blogs/ajiths_blog/windows-10-policies-not-showing-up-in-gpmc-or-gpedit-even-though-appropriate-admx-and-adml-files-are-imported</link>
      <pubDate>Tue, 14 Nov 2017 07:06:14 GMT</pubDate>
      <dc:creator><![CDATA[S. Ajith kumar]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ajiths_blog/?p=66</guid>
      <description><![CDATA[This post may be something that most of the domain admins are already aware of, however I took a...]]></description>
      <content:encoded><![CDATA[<span>This post may be something that most of the domain admins are already aware of, however I took a couple of hours to figure this for a customer.</span>

<span>Some organizations do not have the habit of importing all the ADMX and ADML files into their local store or central store. They choose the very specific ones that they need.</span>

<span>For instance, Windows 10 Creators Update (1703) templates has 201 ADMX and corresponding 201 ADML files.</span>
<pre><span>Likely problem?</span></pre>
<span>- &gt; The intended policy settings may not be visible in the editor even after importing the specific ones. </span>

<span> </span>

<span>Let’ take an example of having to manage “<strong>Data Collection and Preview Builds</strong>” through GPO for Windows 10 machines. The below is from a Windows 10 machine’s Local Group Policy Editor.</span>

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/Windows_10_GPO.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/Windows_10_GPO-300x241.jpg" alt="" width="307" height="247" class="alignnone wp-image-75" /></a>

<span>For the purpose of this article, we will show you in local policy. Depending on whether you manage your templates as local store or central store, please take appropriate steps as required. The below is from a Windows 7 sp1 (which is equivalent to Server 2008 R2 sp1). As we see, there is no “</span><strong>Data Collection and Preview Builds</strong><span>” in here.</span>

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/Windows_7_GPO.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/Windows_7_GPO-300x209.jpg" alt="" width="300" height="209" class="alignnone size-medium wp-image-105" /></a>

<span>We can download the latest templates from here:</span>

<span>Administrative Templates (.admx) for Windows 10 Creators Update (1703)</span>

<span><a target="_blank" href="https://www.microsoft.com/en-us/download/details.aspx?id=55080" rel="noopener">https://www.microsoft.com/en-us/download/details.aspx?id=55080 <img src="https://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" border="0" title="This link is external to TechNet Wiki. It will open in a new window." alt="Jump" /> </a></span>

<span>Let’s continue to install this on our Windows 7 sp1 machine.</span>

<span>All the <strong>ADMX</strong> files will be in C:\Program Files (x86)\Microsoft Group Policy\Windows 10 Creators Update (v2)\PolicyDefinitions</span>

<span>Likewise, all the corresponding <strong>ADML</strong> files will be C:\Program Files (x86)\Microsoft Group Policy\Windows 10 Creators Update (v2)\PolicyDefinitions\En-US</span>

<span> </span>

<span>If you don’t want to copy all of them and need something very specific like in this example of “<strong>Data Collection and Preview Builds</strong>”, we will copy only the “<strong>DataCollection.ADMX</strong>” and “<strong>DataCollection.ADML</strong>” to PolicyDefinitions and PolicyDefinitions\En-US folder respectively.</span>

<span> </span>

<span>However, when we open GPEDIT.MSC, it does not show up option in Local Computer Policy.</span>

<span> </span>

<span>Time to get our hands dirty!!</span>

<span>First off, lets open the DataCollection.ADMX file in notepad for any clues.</span>

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/Data_Collection.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/Data_Collection-300x201.jpg" alt="" width="300" height="201" class="alignnone size-medium wp-image-85" /></a>

<span>As you see it has a ParentCategory reference to Windows admx (note the : symbol).</span>

<span>From a very basic interpretation perspective, I believe this category called “DataCollectionAndPreviewBuilds” has been defined inside Windows.ADMX.</span>

<span> </span>

<span>So, let’s quickly open Windows.ADMX in notepad and search for "DataCollectionAndPreviewBuilds"</span>

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/Windows.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/Windows-300x205.jpg" alt="" width="300" height="205" class="alignnone size-medium wp-image-95" /></a>

<span>Now, we can relate that they are cross linked.</span>

<span>To cross verify, let’s open up the locally stored Windows.ADMX from C:\Windows\PolicyDefinitions to see if that reference is there and obviously it's not there because this file was created before Windows 10 days.</span>

<span>So, we can now safely conclude that the GPO was not displaying it because reference is missing.</span>

<span> </span>

<span>What is Windows.ADMX?</span>

<span>This file provides predefined categories and help text. So, there is nothing to worry about changing ownership and renaming of this file.</span>

&nbsp;

<span>Let’s rename the existing C:\Windows\PolicyDefinitions\Windows.ADMX and C:\Windows\PolicyDefinitions\En-US\Windows.ADML</span>

<strong><span>NOTE - We may have to take ownership of these two files first and then give necessary permissions before being able to rename them.</span></strong>

&nbsp;

<span>Copy the new <strong>windows.ADMX</strong> and <strong>windows.ADML</strong> from the installed location to PolicyDefinitions and En-US folder accordingly.</span>

<span> </span>

<span>Let’s open gpedit.msc and see if that displays now?</span>

<span>See result:</span>

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/Final.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/Final-300x248.jpg" alt="" width="300" height="248" class="alignnone size-medium wp-image-86" /></a>

&nbsp;

Ajith Kumar Sukumaran

Technology Solutions Professional]]></content:encoded>
    </item>
    <item>
      <title>Debugging an application crash using procmon without memory dump. hmm. Seriously??</title>
      <link>https://docs.microsoft.com/archive/blogs/ajiths_blog/debugging-an-application-crash-using-procmon-without-memory-dump-hmm-seriously</link>
      <pubDate>Fri, 02 Jan 2015 02:11:41 GMT</pubDate>
      <dc:creator><![CDATA[S. Ajith kumar]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ajiths_blog/2015/01/02/debugging-an-application-crash-using-procmon-without-memory-dump-hmm-seriously/</guid>
      <description><![CDATA[&nbsp;
Yes. While this is not debugging using windbg, procmon has the capability to aid us in...]]></description>
      <content:encoded><![CDATA[<p><span style="color:#000080;">&nbsp;</span></p>
<p><span style="color:#000080;">Yes. While this is not debugging using windbg, procmon has the capability to aid us in debugging as long as we have the necessary symbol files.</span><br /><span style="color:#000080;">The intention of this blog is to reveal some powers of procmon tool. We use it on various troubleshooting occasions when we don&#39;t know what is really happening behind the scenes.</span></p>
<p><span style="color:#000080;">In my opinion, procmon is the most powerful troubleshooting tool (at least, I use it for resolving most cases)</span><br /><span style="color:#000080;">Thought of writing this blog with an example of an issue that I happen to solve for a customer using this tool. </span><br /><span style="color:#000080;">Recently, I worked on an issue with a customer who had this particular scenario - Multiple processes would crash on launching. This seems to be affecting hundreds of machine and has been happening for over a few months. Some examples as below:</span><br /><span style="color:#000080;">&lsquo;Bit Locker Encryption Options&rsquo; from the control panel:</span><br /><span style="color:#000080;">--------------------------------------------------------------------------</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/BitLocker.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/BitLocker.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/BitLocker.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/BitLocker.png" border="0" /></a></p>
<p><br /><span style="color:#000080;">Configuration Manager or SCCM&rsquo;s &lsquo;Software Center&rsquo;:</span><br /><span style="color:#000080;">-----------------------------------------------------------------------</span></p>
<p><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/SoftwareCenter.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/SoftwareCenter.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/SoftwareCenter.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/SoftwareCenter.png" border="0" /></a></span></p>
<p><br /><span style="color:#000080;">Typically, it is supposed to show some more stuff under this, however before it could completely load everything, it would end up in crashing for some unknown reasons... Well not really unknown in the end of this blog. </span><br /><span style="color:#000080;">For now, I would take the normal approach here.</span></p>
<p><span style="color:#000080;">Pretty confident that there has to be something interesting in the event logs.</span><br /><span style="color:#000080;">Sure enough, you would find the classical application crash events in the event viewer.</span></p>
<p><span style="color:#000080;">Event related to Bit Locker Encryption Options crash:</span><br /><span style="color:#000080;">-----------------------------------------------------------------------</span></p>
<p><span style="color:#000080;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application</span><br /><span style="color:#000080;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows Error Reporting</span><br /><span style="color:#000080;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24-12-2014 12:12:42</span><br /><span style="color:#000080;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1001</span><br /><span style="color:#000080;">Task Category: None</span><br /><span style="color:#000080;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Information</span><br /><span style="color:#000080;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="color:#000080;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="color:#000080;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ABC.XYZ.COM</span><br /><span style="color:#000080;">Description:</span><br /><span style="color:#000080;">Fault bucket 85905360500, type 4</span><br /><span style="color:#000080;">Event Name: APPCRASH</span><br /><span style="color:#000080;">Response: Not available</span><br /><span style="color:#000080;">Cab Id: 0</span><br /><span style="color:#000080;">Problem signature:</span><br /><span style="color:#000080;">P1: MBAMControlUI.exe</span><br /><span style="color:#000080;">P2: 2.1.117.0</span><br /><span style="color:#000080;">P3: 5271df47</span><br /><span style="color:#000080;">P4: unknown</span><br /><span style="color:#000080;">P5: 0.0.0.0</span><br /><span style="color:#000080;">P6: 00000000</span><br /><span style="color:#000080;">P7: c0000005</span><br /><span style="color:#000080;">P8: 0000000000000000</span><br /><span style="color:#000080;">P9: </span><br /><span style="color:#000080;">P10:</span></p>
<p></p>
<p><br /><span style="color:#000080;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application</span><br /><span style="color:#000080;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application Error</span><br /><span style="color:#000080;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24-12-2014 12:12:29</span><br /><span style="color:#000080;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000</span><br /><span style="color:#000080;">Task Category: (100)</span><br /><span style="color:#000080;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error</span><br /><span style="color:#000080;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="color:#000080;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="color:#000080;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ABC.XYZ.COM</span><br /><span style="color:#000080;">Description:</span><br /><span style="color:#000080;">Faulting application name: MBAMControlUI.exe, version: 2.1.117.0, time stamp: 0x5271df47</span><br /><span style="color:#000080;">Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000</span><br /><span style="color:#000080;">Exception code: 0xc0000005</span><br /><span style="color:#000080;">Fault offset: 0x0000000000000000</span><br /><span style="color:#000080;">Faulting process id: 0x%9</span><br /><span style="color:#000080;">Faulting application start time: 0x%10</span><br /><span style="color:#000080;">Faulting application path: %11</span><br /><span style="color:#000080;">Faulting module path: %12</span><br /><span style="color:#000080;">Report Id: %13</span><br /><span style="color:#000080;">Faulting package full name: %14</span><br /><span style="color:#000080;">Faulting package-relative application ID: %15</span></p>
<p><span style="color:#000080;">Events related to Software Center&rsquo;s crash:</span><br /><span style="color:#000080;">--------------------------------------------------------</span></p>
<p><span style="color:#000080;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application</span><br /><span style="color:#000080;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows Error Reporting</span><br /><span style="color:#000080;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24-12-2014 12:03:12</span><br /><span style="color:#000080;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1001</span><br /><span style="color:#000080;">Task Category: None</span><br /><span style="color:#000080;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Information</span><br /><span style="color:#000080;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="color:#000080;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="color:#000080;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ABC.XYZ.COM</span><br /><span style="color:#000080;">Description:</span><br /><span style="color:#000080;">Fault bucket -329875240, type 5</span><br /><span style="color:#000080;">Event Name: BEX</span><br /><span style="color:#000080;">Response: Not available</span><br /><span style="color:#000080;">Cab Id: 0</span><br /><span style="color:#000080;">Problem signature:</span><br /><span style="color:#000080;">P1: SCClient.exe</span><br /><span style="color:#000080;">P2: 5.0.7958.1000</span><br /><span style="color:#000080;">P3: 5230d2b7</span><br /><span style="color:#000080;">P4: StackHash_5861</span><br /><span style="color:#000080;">P5: 0.0.0.0</span><br /><span style="color:#000080;">P6: 00000000</span><br /><span style="color:#000080;">P7: PCH_E4_FROM_ntdll+0x0003C1AC</span><br /><span style="color:#000080;">P8: c0000005</span><br /><span style="color:#000080;">P9: 00000008</span><br /><span style="color:#000080;">P10:</span></p>
<p><br /><span style="color:#000080;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application</span><br /><span style="color:#000080;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application Error</span><br /><span style="color:#000080;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24-12-2014 12:03:06</span><br /><span style="color:#000080;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000</span><br /><span style="color:#000080;">Task Category: (100)</span><br /><span style="color:#000080;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error</span><br /><span style="color:#000080;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="color:#000080;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="color:#000080;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ABC.XYZ.COM</span><br /><span style="color:#000080;">Description:</span><br /><span style="color:#000080;">Faulting application name: SCClient.exe, version: 5.0.7958.1000, time stamp: 0x5230d2b7</span><br /><span style="color:#000080;">Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000</span><br /><span style="color:#000080;">Exception code: 0xc0000005</span><br /><span style="color:#000080;">Fault offset: 0x00000000</span><br /><span style="color:#000080;">Faulting process id: 0x1404</span><br /><span style="color:#000080;">Faulting application start time: 0x01d01f4374dffc6d</span><br /><span style="color:#000080;">Faulting application path: C:\Windows\CCM\SCClient.exe</span><br /><span style="color:#000080;">Faulting module path: unknown</span><br /><span style="color:#000080;">Report Id: b785c36e-8b36-11e4-be97-28e3471721ed</span><br /><span style="color:#000080;">Faulting package full name: </span><br /><span style="color:#000080;">Faulting package-relative application ID:</span></p>
<p><br /><span style="color:#000080;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application</span><br /><span style="color:#000080;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .NET Runtime</span><br /><span style="color:#000080;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24-12-2014 12:03:03</span><br /><span style="color:#000080;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1026</span><br /><span style="color:#000080;">Task Category: None</span><br /><span style="color:#000080;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error</span><br /><span style="color:#000080;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="color:#000080;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="color:#000080;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ABC.XYZ.COM</span><br /><span style="color:#000080;">Description:</span><br /><span style="color:#000080;">Application: SCClient.exe</span><br /><span style="color:#000080;">Framework Version: v4.0.30319</span><br /><span style="color:#000080;">Description: The process was terminated due to an unhandled exception.</span><br /><span style="color:#000080;">Exception Info: exception code c0000005, exception address 00000000</span></p>
<p><span style="color:#000080;">As you can see above, the faulting module is showing as unknown. So, we don&rsquo;t know for sure what the culprit here is.</span></p>
<p><span style="color:#000080;">Typically in these scenarios, we would capture a memory dump when the crash occurs and have the customer send the dump file to us. We would then debug it to understand the cause of the crash.</span><br /><span style="color:#000080;">However, that&rsquo;s a lengthy and tedious process.</span><br /><span style="color:#000080;">First of all, we would need to look at any logs if available for the component that we are troubleshooting. If not, we go with memory dump.</span></p>
<p><span style="color:#000080;">Before I get onto the memory dump procedure, this time though; I decided to take my favorite approach &ndash; The procmon approach. </span><br /><span style="color:#000080;">Usage of procmon is pretty simple. Procmon has evolved and has been evolving with new great improvements, advanced filters and additional activities.</span><br /><span style="color:#000080;">Though many of us in the system admin world already knows about it, I&rsquo;m posting the capture procedure for the benefit of others.</span><br /><span style="color:#000080;">Once you download and run procmon.exe tool, it would immediately start capturing file system, registry and process/thread activities.</span></p>
<p><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Procmon.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Procmon.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Procmon.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Procmon.png" border="0" /></a></span></p>
<p><br /><span style="color:#000080;">The Capture button which looks like a magnifying glass (mouse is hovered in the picture) is same button used for both starting as well as for stopping the captures. Kind of like ON / OFF switch. You could also use the CTRL + E button combination to issue a button stroke if you would like.</span><br /><span style="color:#000080;">As you see in the bottom of the screenshot, it has already captured so much of events though I stopped the capture within 2 seconds after I opened it&hellip; Those are the things happening in the background whether you like it or not. </span><br /><span style="color:#000080;">The very fact that it takes too much of information can be chatty as well and procmon log analysis requires that we put in our logic for the issue that we are troubleshooting. Many events can lead us to go in different directions of analysis. So, the first and foremost technique in data capture using procmon is to keep it as short as possible. While there are many ways using filters to take only necessary data, I&rsquo;m not discussing about those at this time.</span></p>
<p><span style="color:#000080;">Let&rsquo;s do the data capture now.</span><br /><span style="color:#000080;">Download link here:</span><br /><span style="color:#000080;"><a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"><span style="color:#000080;">http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx</span></a></span><br /><span style="color:#000080;">By default, once we open the tool, it would start capturing data automatically.</span><br /><span style="color:#000080;">So, we click on the capture button to stop the capture first.</span><br /><span style="color:#000080;">Next is to click on the clear button or (use CTRL + X button combination) to clear everything that it has captured till now.</span></p>
<p><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcmonClear.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcmonClear.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcmonClear.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcmonClear.png" border="0" /></a></span></p>
<p><span style="color:#000080;">Looks nice and clean now. </span><br /><span style="color:#000080;">If possible, close all applications that you can to avoid getting chatty.</span><br /><span style="color:#000080;">Be ready to reproduce the issue. Most of the times, we keep procmon tool and the problem window resized in the same screen so that we can repro the issue as well as click on the capture button in Procmon. No time to waste a single second. You will see why in a bit. </span><br /><span style="color:#000080;">Switch ON the capture button. </span><br /><span style="color:#000080;">Immediately reproduce the problem (In this case, I simply tried to launch the software center). </span><br /><span style="color:#000080;">Waited for the application to crash.</span><br /><span style="color:#000080;">Switch OFF the capture button as soon as possible.</span><br /><span style="color:#000080;">Phew! Log capture is done.</span><br /><span style="color:#000080;">You can now save the file (be sure to save it as &lsquo;PML&rsquo; format and choose &lsquo;All Events&rsquo;).</span><br /><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcmonSave.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcmonSave.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcmonSave.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcmonSave.png" border="0" /></a></span></p>
<p><br /><span style="color:#000080;">Zip the file and send to Microsoft for analysis. If you like a little adventure, then start doing the analysis.&nbsp;</span></p>
<p><span style="color:#000080;">Typical analysis of procmon data may not need symbols.</span><br /><span style="color:#000080;">However, in this case that would be much required. Thankfully, Mark Russinovich had already configured it for user&rsquo;s convenience. As long as you have internet access, you are good to connect to the Microsoft public symbol server.</span><br /><span style="color:#000080;">You can see it being configured as below. </span><br /><span style="color:#000080;">BTW, don&rsquo;t forget to note that number of events that it has captured shown with the arrow. Trust me, this data capture was run only for less than 3 seconds and it already has 600 thousand + events. This is why we want to data capture to be super-fast and not to waste a single second. I&rsquo;m glad you understood this. </span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcmonSymbols.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcmonSymbols.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcmonSymbols.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcmonSymbols.png" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcmonSymbols2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcmonSymbols2.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcmonSymbols2.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcmonSymbols2.png" border="0" /></a><br /><span style="color:#000080;">&nbsp;</span><br /><span style="color:#000080;">Note: For the sake of this blog, I had switched from MS internal to MS public.</span><br /><span style="color:#000080;">In my personal experience, I have seen many times that the built-in dbghelp.dll doesn&rsquo;t work.</span><br /><span style="color:#000080;">I normally use the latest MS internal version to get around that.</span><br /><span style="color:#000080;">Should the need arise, you may want to download and install the latest &ldquo;Debugging Tools for Windows&rdquo; from Microsoft. It is available in the SDK as well.</span></p>
<p><span style="color:#000080;">In this case, we know the name of the EXE that crashed. So, I will first filter it to show only activities by SCClient.exe (software center).</span></p>
<p><span style="color:#000080;">One of the most useful buttons is the Filter button (CTRL + L combination).</span></p>
<p><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/FilterButton.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/FilterButton.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/FilterButton.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/FilterButton.png" border="0" /></a></span></p>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Filter1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Filter1.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Filter1.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Filter1.png" border="0" /></a></p>
<p><span style="color:#000080;">&nbsp;</span></p>
<p><span style="color:#000080;">Add this filter and click on OK.</span><br /><span style="color:#000080;">Now, it will show ONLY the events pertaining to SCClient.exe.</span></p>
<p><span style="color:#000080;">If we double click on an event anywhere, we can get into more details of that event. </span><br /><span style="color:#000080;">Sample below:</span></p>
<p><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Event.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Event.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Event.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Event.png" border="0" /></a></span></p>
<p><span style="color:#000080;">Note that you can see the &lsquo;Event&rsquo; tab as well as the &lsquo;Process&rsquo; tab and the &lsquo;Stack&rsquo; tab.</span><br /><span style="color:#000080;">The Stack is the one that will be useful only if we have symbols in place.</span><br /><span style="color:#000080;">Of course, it is not easy to point to the particular event that led to the crash. It takes some hit or miss logics to be tried (at least for me). Finally, I have the point of failure.</span></p>
<p><span style="color:#000080;">Caught the event in the list which shows the unhandled exception in the stack.</span></p>
<p><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Stack1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Stack1.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Stack1.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Stack1.png" border="0" /></a></span></p>
<p><br /><span style="color:#000080;">The previous event to this shows normal activity as below:</span><br /><span style="color:#000080;">&nbsp;</span></p>
<p><span style="color:#000080;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Stack2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Stack2.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Stack2.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Stack2.png" border="0" /></a><br /></span></p>
<p><span style="color:#000080;">While this appears to be normal, we need to look closely into this event to understand why the next event shows the unhandled exception. Wait&hellip;. From what I can infer from the stack, there appears to be some kind of drawing or something to do with display enumeration. </span><br /><span style="color:#000080;">Perhaps something is wrong with the display driver??</span></p>
<p><span style="color:#000080;">This time, go back to the Process tab. Next, I choose to sort by the &lsquo;Company&rsquo; field to find out the third party modules loaded within this SCClient.exe.</span><br /><span style="color:#000080;">&nbsp;</span></p>
<p><span style="color:#000080;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Company.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Company.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Company.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Company.png" border="0" /></a><br /></span></p>
<p><span style="color:#000080;">There appears to be 2 modules from LogMeIn and 2 modules from Intel.</span><br /><span style="color:#000080;">I ignore LogMeIn modules because I installed it on the customer&rsquo;s computer for me to be able to establish a remote troubleshooting session. Issue was still happening prior to me installing it.</span><br /><span style="color:#000080;">Let&rsquo;s take a look at the Intel modules to see what they really are?</span><br /><span style="color:#000080;">We can just double click on the module name and it gives all possible details about it.</span><br /><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/igdusc32.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/igdusc32.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/igdusc32.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/igdusc32.png" border="0" /></a></span></p>
<p><span style="color:#000080;">and</span></p>
<p><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/igdumdim32.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/igdumdim32.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/igdumdim32.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/igdumdim32.png" border="0" /></a></span></p>
<p><span style="color:#000080;">Okay. These two files have something to do with display graphics.</span><br /><span style="color:#000080;">Don&rsquo;t want to jump the gun right away.</span><br /><span style="color:#000080;">Going back to procmon, I look at what is the previous module that was loaded before the crash.</span><br /><span style="color:#000080;">Filtered with &lsquo;Load Image&rsquo; and can see the following:</span><br /><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/LoadImage.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/LoadImage.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/LoadImage.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/LoadImage.png" border="0" /></a></span></p>
<p><br /><span style="color:#000080;">Now, I&rsquo;m certain that I really would want to eliminate these 2 modules in the first place to see if the issue happens or not. </span><br /><span style="color:#000080;">We un-installed the Intel graphics driver and voila! Software Center opens up just fine.</span><br /><span style="color:#000080;">So does the Bit locker Encryption Option.</span></p>
<p><span style="color:#000080;">Case solved!!!</span></p>
<p><span style="color:#000080;">Remember that I first mentioned about looking at the associated log file for the component that you are troubleshooting before jumping to dumps. In this case, there is a log called scclient_&lt;domain&gt;@Username.log.</span><br /><span style="color:#000080;">Unfortunately, we didn&rsquo;t have much information on this and I expect this because the issue was a crash while rendering graphics and not likely, this is going to be logged.</span></p>
<p><span style="color:#000080;">Oh! If you don&rsquo;t really know what the associated log file is, procmon is still your friend.</span><br /><span style="color:#000080;">Just put a filter for &lsquo;Path&rsquo; &lsquo;contains&rsquo; &lsquo;.log&rsquo;.</span><br /><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Path.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Path.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Path.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Path.png" border="0" /></a></span><span style="color:#000080;"><br /></span></p>
<p><span style="color:#000080;">Once you apply that filter, it should look like this:</span><br /><span style="color:#000080;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Log.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Log.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/Log.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/Log.png" border="0" /></a></span></p>
<p><span style="color:#000080;">As we can see SCClient.exe is writing to a log file.</span><br /><span style="color:#000080;">The same applies for any application to understand if that is logging anywhere or not.</span></p>
<p><br /><span style="color:#000080;">Read on if you are still interested for my debugging notes&hellip;.</span><br /><span style="color:#000080;">We installed the graphics driver again, I captured a memory dump using another awesome creation by Mark &ndash; Procdump.exe</span><br /><span style="color:#000080;"><a href="http://technet.microsoft.com/en-in/sysinternals/dd996900.aspx"><span style="color:#000080;">http://technet.microsoft.com/en-in/sysinternals/dd996900.aspx</span></a></span></p>
<p><br /><span style="color:#000080;">0:009&gt; .lines</span><br /><span style="color:#000080;">Line number information will not be loaded</span><br /><span style="color:#000080;">0:009&gt; |</span><br /><span style="color:#000080;">.&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 474&nbsp;&nbsp; examine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name: C:\Windows\CCM\SCClient.exe</span><br /><span style="color:#000080;">0:009&gt; vertarget</span><br /><span style="color:#000080;">Windows 8 Version 9600 MP (4 procs) Free x86 compatible</span><br /><span style="color:#000080;">Product: WinNt, suite: SingleUserTS</span><br /><span style="color:#000080;">kernel32.dll version: 6.3.9600.16656 (winblue_gdr_pres14.140305-1700)</span><br /><span style="color:#000080;">Machine Name:</span><br /><span style="color:#000080;">Debug session time: Thu Dec 25 17:40:28.000 2014 (UTC + 5:30)</span><br /><span style="color:#000080;">System Uptime: not available</span><br /><span style="color:#000080;">Process Uptime: 0 days 0:00:05.000</span><br /><span style="color:#000080;">&nbsp; Kernel time: 0 days 0:00:00.000</span><br /><span style="color:#000080;">&nbsp; User time: 0 days 0:00:00.000</span><br /><span style="color:#000080;">0:009&gt; .ecxr</span><br /><span style="color:#000080;">Unable to load image C:\Windows\System32\igdumdim32.dll, Win32 error 0n2</span><br /><span style="color:#000080;">*** WARNING: Unable to verify timestamp for igdumdim32.dll</span><br /><span style="color:#000080;">*** ERROR: Module load completed but symbols could not be loaded for igdumdim32.dll</span><br /><span style="color:#000080;">eax=00000000 ebx=00000000 ecx=076f9130 edx=00000000 esi=05a8892c edi=05a86600</span><br /><span style="color:#000080;">eip=00000000 esp=0593f28c ebp=0593f2b0 iopl=0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nv up ei ng nz na po cy</span><br /><span style="color:#000080;">cs=0023&nbsp; ss=002b&nbsp; ds=002b&nbsp; es=002b&nbsp; fs=0053&nbsp; gs=002b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; efl=00010283</span><br /><span style="color:#000080;">00000000 ??&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ???</span><br /><span style="color:#000080;">0:009&gt; kb</span><br /><span style="color:#000080;">&nbsp; *** Stack trace for last set context - .thread/.cxr resets it</span><br /><span style="color:#000080;">*** WARNING: Unable to verify timestamp for igdumdim32.dll</span><br /><span style="color:#000080;">*** ERROR: Module load completed but symbols could not be loaded for igdumdim32.dll</span><br /><span style="color:#000080;">ChildEBP RetAddr&nbsp; Args to Child&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br /><span style="color:#000080;">WARNING: Frame IP not in any known module. Following frames may be wrong.</span><br /><span style="color:#000080;">0593f288 64616e27 05999420 0593f2a0 05a86600 0x0</span><br /><span style="color:#000080;">0593f2b0 6461e7ae 05a86600 0593f318 07700f40 igdumdim32+0xc6e27</span><br /><span style="color:#000080;">0593f360 645f6d83 05a86600 077011d0 00000000 igdumdim32+0xce7ae</span><br /><span style="color:#000080;">0593f3f8 64d1479f 00000003 0593f41c 0593f474 igdumdim32+0xa6d83</span><br /><span style="color:#000080;">0593f458 64e0d8ac 0859ace0 00000000 00000000 d3d9!CD3DDDIDX10::Blt+0x7a</span><br /><span style="color:#000080;">0593f49c 64df5eb1 0859ace0 00000000 00000000 d3d9!CD3DDDIDX10::SurfaceBlt+0x35</span><br /><span style="color:#000080;">0593f4fc 64db8983 0859ace0 00000000 0859ae78 d3d9!CD3DBase::SurfaceBlt+0x44</span><br /><span style="color:#000080;">0593f5fc 69ed1767 0599a720 059f6980 0593f67c d3d9!CBaseDevice::UpdateSurface+0x648</span><br /><span style="color:#000080;">0593f620 69ed7c92 059f6980 0593f67c 059f6680 wpfgfx_v0400!CD3DDeviceLevel1::UpdateSurface+0x1f</span><br /><span style="color:#000080;">0593f694 69ef57b8 085c4518 0593f6bc 085de5f0 wpfgfx_v0400!CD3DGlyphBank::RectFillAlpha+0x206</span><br /><span style="color:#000080;">0593f6cc 69ef1787 0593f7b8 05a08450 00000000 wpfgfx_v0400!CD3DSubGlyph::ValidateAlphaMap+0xb3</span><br /><span style="color:#000080;">0593f778 69eea0b9 0593f9dc 0000ff01 059ed288 wpfgfx_v0400!CD3DGlyphRunPainter::Paint+0x601</span><br /><span style="color:#000080;">0593f8c8 69f393ba 05a08450 0593f9dc 0593f948 wpfgfx_v0400!CHwSurfaceRenderTarget::DrawGlyphs+0x188</span><br /><span style="color:#000080;">0593f8dc 69e06aa2 05a08450 0593f9dc 059f6620 wpfgfx_v0400!CHwDisplayRenderTarget::DrawGlyphs+0x1a</span><br /><span style="color:#000080;">0593f9a0 69e0697c 00c34e28 0593f9dc 05a0c4f8 wpfgfx_v0400!CMetaRenderTarget::DrawGlyphs+0xe6</span><br /><span style="color:#000080;">0593fa00 69dfc7f3 08588bf8 00be33e8 085baf50 wpfgfx_v0400!CDrawingContext::DrawGlyphRun+0x30d</span><br /><span style="color:#000080;">0593fab0 69dff4f7 05a0c4f8 05a0c4f8 085baf50 wpfgfx_v0400!CMilSlaveRenderData::Draw+0x43f</span><br /><span style="color:#000080;">0593fac4 69df632c 05a0c4f8 0598e188 085baf50 wpfgfx_v0400!CMilVisual::RenderContent+0x26</span><br /><span style="color:#000080;">0593fb8c 69df639b 0593fba8 00000000 05a0c4f8 wpfgfx_v0400!CDrawingContext::PreSubgraph+0x6d9</span><br /><span style="color:#000080;">0593fbb8 69df7602 00c05d50 05a0c510 05a0c4f8 wpfgfx_v0400!CGraphIterator::Walk+0x37</span><br /><span style="color:#000080;">0593fc00 69e11856 00c05d50 00be116c 0593fcf4 wpfgfx_v0400!CDrawingContext::DrawVisualTree+0x230</span><br /><span style="color:#000080;">0593fc9c 69df7e26 00c05d50 00c34e44 00be116c wpfgfx_v0400!CDrawingContext::Render+0x3f9</span><br /><span style="color:#000080;">0593fd0c 69df7c9b 0593fd33 00c3de28 0593fdcb wpfgfx_v0400!CSlaveHWndRenderTarget::Render+0x1a0</span><br /><span style="color:#000080;">0593fd34 69df1a72 0593fdcb 00c3de28 00000000 wpfgfx_v0400!CRenderTargetManager::Render+0x34</span><br /><span style="color:#000080;">0593fd4c 69df1906 0593fdcb 00c3a5a0 00c3de30 wpfgfx_v0400!CComposition::Render+0x1f</span><br /><span style="color:#000080;">0593fdb4 69df199a 0593fdcb 00c3de30 00c3a5a0 wpfgfx_v0400!CComposition::ProcessComposition+0x12c</span><br /><span style="color:#000080;">0593fdcc 69df19d7 0593fde7 00000001 00c3a5a0 wpfgfx_v0400!CComposition::Compose+0x3e</span><br /><span style="color:#000080;">0593fde8 69df17e1 00c3de30 00be03e8 00c3a5a0 wpfgfx_v0400!CPartitionThread::RenderPartition+0x1b</span><br /><span style="color:#000080;">0593fe00 69e0aee1 00000000 00000000 00c3a5a0 wpfgfx_v0400!CPartitionThread::Run+0x48</span><br /><span style="color:#000080;">0593fe18 7734495d 00c3a5a0 0593fe68 77b098ee wpfgfx_v0400!CPartitionThread::ThreadMain+0x1c</span><br /><span style="color:#000080;">0593fe24 77b098ee 00c3a5a0 cb763808 00000000 kernel32!BaseThreadInitThunk+0xe</span><br /><span style="color:#000080;">0593fe68 77b098c4 ffffffff 77afe0cf 00000000 ntdll!__RtlUserThreadStart+0x20</span><br /><span style="color:#000080;">0593fe78 00000000 69e0aec5 00c3a5a0 00000000 ntdll!_RtlUserThreadStart+0x1b</span></p>
<p><br /><span style="color:#000080;">As you can see (read stack from bottom to top), there appears to be some drawing happening and finally ends with igdumdim32.</span></p>
<p><span style="color:#000080;">0:009&gt; lmvm igdumdim32</span><br /><span style="color:#000080;">start&nbsp;&nbsp;&nbsp; end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; module name</span><br /><span style="color:#000080;">64550000 64cdd000&nbsp;&nbsp; igdumdim32 T (no symbols)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; Loaded symbol image file: igdumdim32.dll</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; Image path: C:\Windows\System32\igdumdim32.dll</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; Image name: igdumdim32.dll</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; Timestamp:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mon Jun 24 21:16:07 2013 (51C869BF)</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; CheckSum:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00000000</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; ImageSize:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0078D000</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; File version:&nbsp;&nbsp;&nbsp;&nbsp; 9.18.10.3220</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; Product version:&nbsp; 9.18.10.3220</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; File flags:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 (Mask 3F)</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; File OS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40004 NT Win32</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; File type:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.8 Dll</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; File date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00000000.00000000</span><br /><span style="color:#000080;">&nbsp;&nbsp;&nbsp; Translations:&nbsp;&nbsp;&nbsp;&nbsp; 0000.04b0 0000.04e4 0409.04b0 0409.04e4</span></p>
<p><span style="color:#000080;">Basically, igdumdim32.dll caused an access violation when trying to execute instructions from a non-executable address in the memory.</span></p>
<p><span style="color:#000080;">Case of crash &ndash; explained!!</span></p>
<p><span style="color:#000080;">&nbsp;</span></p>
<p><span style="color:#000080;">Ajith Kumar<br /></span></p>
<p><span style="color:#000080;">Support Escalation Engineer<br /></span></p>
<p><span style="color:#000080;">&nbsp;</span></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>How to tackle Performance Issues (For System Center ConfigMgr / OpsMgr)</title>
      <link>https://docs.microsoft.com/archive/blogs/ajiths_blog/how-to-tackle-performance-issues-for-system-center-configmgr-opsmgr</link>
      <pubDate>Mon, 30 Dec 2013 03:18:48 GMT</pubDate>
      <dc:creator><![CDATA[S. Ajith kumar]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ajiths_blog/2013/12/30/how-to-tackle-performance-issues-for-system-center-configmgr-opsmgr/</guid>
      <description><![CDATA[&nbsp;
How To Tackle Performance Issues (For System Center products like ConfigMgr /...]]></description>
      <content:encoded><![CDATA[<p><span style="color:#003366;font-family:courier new,courier;font-size:x-large;"><strong><span lang="EN-US">&nbsp;</span></strong></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:x-large;"><strong><span lang="EN-US">How To Tackle Performance Issues (For System Center products like ConfigMgr / OpsMgr):</span></strong></span></p>
<p><span style="color:#003366;font-family:courier new,courier;"><strong><span lang="EN-US"><span style="font-size:medium;"><span style="font-size:x-large;">---------------------------------------------------------------------------------------</span><br /></span></span></strong></span></p>
<p><span style="color:#003366;font-family:courier new,courier;"><strong><span lang="EN-US"><span style="font-size:medium;">&nbsp;</span></span></strong></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">The intention of this&nbsp;blog is to help troubleshoot &#39;performance issues&#39; on System Center products or at least identify where the bottle neck is from.</span></span></p>
<p><span style="color:#003366;font-family:courier new,courier;"><span lang="EN-US"><span style="font-size:medium;">First of all, don&#39;t get carried away by the name &#39;performance issues&#39;. </span></span><span lang="EN-US"><span style="font-size:medium;">The term performance can be interpreted in many ways.</span></span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Explain what he / she sees as performance issues. Always get clarity on which action is producing the so called &#39;performance issues&#39;.</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Mostly, performance issues should revolve around local server or SQL.</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">For Configuration Manager (ConfigMgr), there is a huge dependency for WMI as well. Normally there is an indication about performance issues with backlogging in the inboxes.</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">For Operations Manager (OpsMgr), just evaluate local server and SQL. Normally there is an indication about performance issues with Events like 2115.<br /></span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Let&#39;s drill a bit down to local server first.</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">A server can experience sluggishness because of primarily the following 4 parameters.</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">1) Disk bottleneck</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">2) Memory starving</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">3) CPU over utilized</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">4) Network congestion</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Other than this, you&nbsp;could also look at the possibility of WMI repository bloating. (chances are very less for this case though).</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">A quick check of the size of the repository folder could let you know. If you see that to be like 300 MB or greater than that, it&#39;s likely that something is not right there. </span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Engage windows performance&nbsp;experts if that&#39;s the case. (Do NOT blindly rebuild the WMI repository).</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Also, look at the WMI memory quota if that is getting exhausted (especially for ConfigMgr provider / console).<br /></span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Mark Ghazai had written an excellent post about that. - <a href="/b/askperf/archive/2008/09/16/memory-and-handle-quotas-in-the-wmi-provider-service.aspx">http://blogs.technet.com/b/askperf/archive/2008/09/16/memory-and-handle-quotas-in-the-wmi-provider-service.aspx</a><br /></span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">We will explore each of the above 4 parameters one by one here (Again, no intention of deep troubleshooting here).</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">All of these can be covered by taking a perfmon trace while the issue is being reproduced. </span></span></p>
<p style="text-align:justify;margin-left:60px;"><strong><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&#39;How to take perfmon?&#39;</span></span></strong></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Go to Start, Run and type &quot;perfmon&quot; (without quotation marks) and press OK. </span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Expand Data Collector Sets | User Defined</span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Right-click &quot;User Defined&quot; and select New | Data Collector Set </span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Give it a Name and click Next (make sure &quot;Create manually (Advanced)&quot; is selected)</span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Click Next</span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Choose &ldquo;Create data logs&rdquo; and enabled the checkbox for &ldquo;performance counter&rdquo;</span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Click Next</span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Click on the &ldquo;ADD&rdquo; button and choose all the below ones.</span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Please make sure that &ldquo;All Instances&rdquo; are selected.</span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cache</span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logical Disk</span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Memory </span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Network Interface</span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>OpsMgr*&nbsp; - - For SCOM </span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Paging File </span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Physical Disk </span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process </span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Processor </span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Redirector</span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Server </span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>SMS* - - For SMS</span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System</span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>SQLServer:Buffer Manager - - For SQL server.</span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>SQLServer:Memory Manager - - For SQL server.</span></span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">In the &ldquo;Sample Interval&rdquo;, please choose &ldquo;10 seconds&rdquo; and click Next.</span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Choose the location where we want the file to be saved and click Next.</span></p>
<p style="text-align:justify;margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Choose &ldquo;Start this data collector set now&rdquo; option and click finish.</span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Always keep in mind that perfmon logs are good for long-term trend analysis only.</span></span></p>
<p style="text-align:justify;"><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">That means, a live perfmon may not really be the proper way to catch something. Keep it running for a prolonged time and then do the analysis.</span></span></p>
<p style="text-align:justify;"><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Once you have the perfmon logs, you can do a quick analysis by yourself to see if you can catch something obvious. </span></span><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">I have pasted some sample perfmon graphs&nbsp;(not all)&nbsp;for better understanding.</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;</span></span></p>
<p><strong><span lang="EN-US" style="color:#003366;font-family:courier new,courier;font-size:large;">Disk</span></strong></p>
<p><strong><span lang="EN-US" style="color:#003366;font-family:courier new,courier;font-size:large;">-----</span></strong></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">There are a couple of counters that are&nbsp;very important to look at when you suspect disk. The complete analysis / review of all of them is much beyond the scope of this session, however I&#39;ve tried to put some of those to begin with.</span></span></p>
<p><span style="color:#003366;font-family:courier new,courier;"><span lang="EN-US"><span style="font-size:medium;">Look at logical volumes versus physical disks. </span></span><span lang="EN-US"><span style="font-size:medium;">Having multiple logical volumes on a single physical disk doesn&#39;t do any good as far as performance is concerned.</span></span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">&nbsp;</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Review the <strong>%Idle time</strong> for the disk. The greater the idle time, the merrier. :)</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Typically it has to be 70% or higher.</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">There are many&nbsp;issues that we have seen where the disk idle time would be at 0% for a prolonged period of time.</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">Sample:</span></span></p>
<p><span lang="EN-US" style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/IdleTime.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/IdleTime.png"><span style="color:#003366;"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/IdleTime.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/IdleTime.png" border="0" /></span></a></span></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Take a look at the disk E:\ idle time. This is almost <b>touching zero ALL the time</b>. Typically it has around 90.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This explains that this disk is super busy.</span></p>
<p></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Avg Disk Queue Length</strong> counter.</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Typically, this will be zero. However, you may end up seeing higher values. It is not a problem if this value goes high and comes back to zero. Prolonged higher values means that those many requests are still *waiting* to access the disk.</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Sample:</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span lang="EN-US"><span style="font-size:medium;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/AvgDiskQLength.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/AvgDiskQLength.png"><span style="color:#003366;"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/AvgDiskQLength.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/AvgDiskQLength.png" border="0" /></span></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/IdleTime.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/IdleTime.png"></a></span></span><br /></span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">The above&nbsp;is the combined graphs of Disk Q length + Read Q length + Write Q length.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Note that the curves for all three graphs are in sync.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">The values are not visible in perfmon because, multiple counters are selected. However, the Q length value had an avg of 135 and max of 1268.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">That means those many requests are waiting to access the disk. </span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Typically this value has to be less than double the number of spindles on the disk.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Avg Disk sec / Transfer</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This counter reflects what an application is seeing because this tells the time taken for each i/o completion.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Typically, this has to be around 0.00x or atleast 0.01x.<br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;"></span><span style="font-size:medium;"><span style="font-size:medium;"><span style="font-size:medium;">Minute analysis of this requires you to know more details (write cache enabled controller, type of disk like SAN etc). That is beyond the scope of this.</span></span></span></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">For system center engineers, just look at this value and see if this is high.</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Sample:</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/AvgDiskSecTransfer.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/AvgDiskSecTransfer.png"><span style="color:#003366;"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/AvgDiskSecTransfer.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/AvgDiskSecTransfer.png" border="0" /></span></a><br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">In the above graph, Disk sec / transfer value is avg 0.2 and max of 2.25</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This is definitely a very poor value. Clearly, the disk is not capable enough.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Split IO/Sec</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Normally, this will be close to zero. If not, that disk could be fragmented / low free space or NTFS block size was small.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">OpsMgr does not create many small files, however this could be acceptable for around 5 or anything less than 10 for ConfigMgr servers because there will be too many small files under the inboxes. </span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Sample:</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/SplitIO.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/SplitIO.png"><span style="color:#003366;"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/SplitIO.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/SplitIO.png" border="0" /></span></a><br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">As you can see above this has an avg of 101 and max of 274. This volume could use a defragmentation to be run.<br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><strong><span style="color:#003366;font-family:courier new,courier;font-size:large;">Memory:<br /></span></strong></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><strong><span style="font-size:large;">-------</span></strong><br /><br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Cache Bytes</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">See if there is a fluctuation in cache bytes. That typically is a sign of disk bottleneck.</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Sample:</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span style="font-size:medium;">&nbsp;</span><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/CacheBytes.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/CacheBytes.png"><span style="color:#003366;"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/CacheBytes.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/CacheBytes.png" border="0" /></span></a><br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Available MB</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This way you can find out how much of RAM is available still. </span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">No hard and fast rule on this, but typically we need 5% of total RAM to be free.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">On 64 bit servers, you would need atleast 250 MB of this ALL the time, but starving condition is around 100 MB. </span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Starving condition is 4 MB on 32 bit servers.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Here is a sample to help understand how the available MB is proportional to the Total Working Set of processes.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span style="font-size:medium;">&nbsp;</span><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/AvailableMB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/AvailableMB.png"><span style="color:#003366;"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/AvailableMB.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/AvailableMB.png" border="0" /></span></a><br /></span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">As you can see when the working set&nbsp;goes up, the available MB goes down as expected.(</span><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Due to perfmon scaling, the top line is for working set and the bottom line is for available MB)</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Rest of the memory counters are not generally needed by System Center engineers unless going in-depth.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">You can also take memory dumps of offending process or the entire system if need be for further debugging.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p></p>
<p><span style="font-size:large;"><strong><span style="color:#003366;font-family:courier new,courier;">Processor:<br /></span></strong></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span style="font-size:large;"><strong>----------</strong></span><br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>%processor Queue length</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This shows the number of threads in the processor queue. A sustained processor queue of greater than two threads generally indicates processor congestion.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Look for longer durations with higher queue values.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review which process is taking the maximum spike and determine next steps from there.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">You can use Process Explorer to drill a bit down on what is happening with the process. Further troubleshooting is beyond the scope of this blog.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>%processor time</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This counter lets you know the usage of processor time. You need to consider any sustained CPU time over 90%.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Sometimes, you may want to add the &lsquo;Threads&rsquo; counter in perfmon in some cases. Do it ONLY in case of troubleshooting CPU spike issues, not otherwise.(Data will be extremely huge if you take this).</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Sample:</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcessorTime.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcessorTime.png"><span style="color:#003366;"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/ProcessorTime.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/ProcessorTime.png" border="0" /></span></a><br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">If you note the above graph, the top most line in black is the %Processor Time. As you can see, it&rsquo;s always at 100%.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Also note that there are gaps in between. </span><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">The reason is because p</span><span style="font-size:medium;">erfmon is a non-invasive process, so it would not collect the data if the system is extremely busy with CPU cycles.</span></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>%Privileged time</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Privileged time is the time spent doing kernel work.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Sample scenario of smsexec.exe process consuming CPU cycles.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span style="font-size:medium;">&nbsp;</span><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/PrivilegedTime.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/PrivilegedTime.png"><span style="color:#003366;"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/10/PrivilegedTime.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-10/PrivilegedTime.png" border="0" /></span></a><br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">In this graph, I&rsquo;m painting both the SYSTEM and SMSEXEC&rsquo;s privileged time usage. The reason you should evaluate SYSTEM as well is because SMSEXEC is a user mode application. SYSTEM is the only process that you would see in the task manager that actually runs in the kernel. and oh! It always will have the PID of 4. (just fyi).</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="font-size:large;"><strong><span style="color:#003366;font-family:courier new,courier;"><span style="line-height:107%;">Network</span>:</span></strong></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span style="font-size:medium;"><strong>---------</strong><br /></span></span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Output Queue Length</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Generally this would need investigation if this value is greater than 5.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span style="font-size:medium;"><strong><span style="font-size:medium;">&nbsp;</span></strong></span></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Packets Received Discarded</strong> counter and the <strong>Packets Received Errors</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Generally this suggests hardware problems or driver issues.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span style="font-size:medium;"><strong><span style="font-size:medium;"> </span><br /></strong></span></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span style="font-size:medium;"><strong><span style="font-size:medium;"><br /></span></strong><span style="font-size:medium;">You should be able to at least identify where the bottleneck is from based on the above by now.</span></span></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Let&rsquo;s now get back to the <strong>SQL server</strong>.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Remember to take the normal perfmon counters + include two more SQL counters (MSSQL$:memory manager, MSSQL$:buffer manager) as given above.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">SQL performance is again a very vast topic and will go way beyond the scope of this blog.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">There are a couple of very basic things that we need to be aware of....</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">SQL server will consume almost ALL the memory that the operating system has. </span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This is not a bug, this is normal.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">We should do the capping properly (of course, leave memory of OS as well. There is no pre-defined rule as far as I know, but will need to be observed based on perfmon baselining. On the other hand, it is generally safe to cap SQL with 6 GB max memory if the OS has total 8 GB of RAM considering there is no other heavy application). </span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">The Operating system is also designed to trim the working set of SQL to gain back memory if there is a demand to the OS.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This will have a direct impact on SQL server performance. (page faults).</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Use the following query to get information about SQL System Configuration:</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><span style="font-size:medium;"><strong><span style="font-size:medium;"> </span><span style="line-height:107%;font-size:11pt;">Select * from sys.configuration</span><br /></strong></span></span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">For SQL server as well, do the perfmon analysis like you did for the server.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Additional SQL specific things to consider for basic troubleshooting is as below....</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Page Life Expectancy</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This tells the time in seconds that a page will remain the buffer pool.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Higher values are good. Typically, this should not drop below 300.</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Total Server Memory</strong> and <strong>Target Server Memory</strong> counters.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">These tells how much memory SQL Server is using for its cache.</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Review the <strong>Buffer cache hit ratio</strong> counter.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This shows the pages in percentage that is in the buffer pool (ie.. No need to do a read from disk).</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">100% is excellent, but anything less than 80% is not good enough.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">It simply means that SQL needs more memory.</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Check the contig level using the following query:</span></p>
<p><strong><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Dbcc showcontig with fast</span></strong></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Once you have the output of the above query, look at <strong>Scan Density</strong>. Ideally this has to be greater than 80. </span><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Also look at <strong>Logical Fragmentation</strong> for that.</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Troubleshooting techniques typically involve looking at the large tables and then identify the scan density and logical fragmentation of that table.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Kevin Holman has written a very great article on &#39;Useful SQL queries&#39;. I normally use this to copy the queries while troubleshooting.<br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><a href="/b/kevinholman/archive/2007/10/18/useful-operations-manager-2007-sql-queries.aspx">http://blogs.technet.com/b/kevinholman/archive/2007/10/18/useful-operations-manager-2007-sql-queries.aspx</a></span><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><br /></span><span style="color:#003366;font-family:courier new,courier;font-size:medium;"><br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">For instance, in ConfigMgr if you see issues regarding one particular component (like state messages) then evaluate tables associated for that.<br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">For instance, in OpsMgr, if you see issues with one type of workflow (like Alert), then evaluate tables associated for that.<br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Once you identify the table which is fragmented, You can choose to re-index just that one table or the entire database depending on the output.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This can really have a *significant* performance boost.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Sample example output of the query for a table named &#39;Test&#39;: D</span></p>
<p><strong><span style="color:#003366;font-family:courier new,courier;font-size:medium;">BCC showcontig (&#39;dbo.Test&#39;)</span></strong></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">DBCC SHOWCONTIG scanning &#39;Test&#39; table...</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Table: &#39;Test&#39; (546100986); index ID: 1, database ID: 8</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">TABLE level scan performed.</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">- Pages Scanned................................: 12360831</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">- Extent Switches..............................: 6491845</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">- Scan Density [Best Count:Actual Count].......: 23.80% [1545104:6491846]</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">- Logical Scan Fragmentation ..................: 50.04%</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">From the above, we can see that the scan density and the logical fragmentation values are poor.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This clearly indicates that a re-index of this table is needed.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Sometimes updates stats may also be needed. That improves the query plan and ensures that query is with latest statistics, but on the expense of having to recompile the query.</span></p>
<p></p>
<p><strong><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Query to update statistics:</span></strong></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Use &lt;dbname&gt;</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Go</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">exec sp_msforeachtable &#39;update statistics ? with fullscan&#39;</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Go</span></p>
<p></p>
<p><strong><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Query to rebuild indexes: </span></strong></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Use &lt;dbname&gt;</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Go</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Exec sp_MSForEachtable &#39;DBCC DBREINDEX (&#39;&#39;?&#39;&#39;)&#39;</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Go</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Another major parameter which is often neglected is to review the <strong>Maximum Degree Of Parallelism (maxdop).</strong></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">This setting is to tell SQL how many processors to use for query execution.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">MAXDOP setting of &ldquo;0&rdquo; means all available processors will be used. A setting of 0 may be fine for servers with eight or fewer processors. </span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">For servers with more than eight processors, the time it takes SQL to coordinate the use of all processors may be counterproductive. So for servers with more than 8 processors, don&#39;t leave it to 0. Change it to 8.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">For Configuration Manager, we don&#39;t do much of parallel processing. So, keeping this value to 1 or the total number of *physical* processors&nbsp;should be&nbsp;fine.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">For Operations Manager, we may need parallel processing especially&nbsp;for Data Warehouse database. So, keeping this value to 8 or the total number of *physical* processors&nbsp;should be&nbsp;fine.</span></p>
<p></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Note that we are *not limiting* SQL to use only one CPU here instead of all the CPU&rsquo;s, but this is a mechanism to tell SQL how many CPU to use for executing any given single query.</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">You could also use the following query to find out what is the optimal maxdop setting for SQL.</span></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">select case</span></span></p>
<p style="margin-left:60px;"></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">when cpu_count / hyperthread_ratio &gt; 8 then 8</span></p>
<p style="margin-left:60px;"></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">else cpu_count / hyperthread_ratio end as optimal_maxdop_setting</span></p>
<p style="margin-left:60px;"></p>
<p style="margin-left:60px;"><span style="color:#003366;font-family:courier new,courier;"><span style="font-size:medium;">from sys.dm_os_sys_info;</span></span></p>
<p><span style="color:#003366;"><span style="font-family:courier new,courier;font-size:medium;">&nbsp;</span><span style="font-family:courier new,courier;font-size:medium;"><br /></span><span style="font-family:courier new,courier;font-size:medium;"></span></span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">What other than these???<br /></span></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Process Explorer is an excellent tool for troubleshooting CPU spike issues. You can&nbsp;look at which thread is consuming CPU cycles on a process and even look at the stack of that thread.</span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">While troubleshooting performance issues, we take memory dumps as well for digging in-depth should the need arise.</span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Often,&nbsp;many&nbsp;admins come up&nbsp;with a question on when to take memory dumps? What criteria?</span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">To understand about it, a bit of how windows works in the background is beneficial.</span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">To keep it short, just&nbsp;understand, all that a process sees is the Virtual Memory. Windows does the manipulation of physical memory to virtual memory and vice-versa.</span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">When a memory dump is captured for a process, that is the actual virtual memory of that process.</span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Two types of memory dumps you may want to know about. (hang dumps and crash dumps).</span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">When you suspect something is leaking or if you suspect the application is not doing what it is supposed to do, you tend to go for a hang dump.</span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">When a process is terminating abnormally, you tend to go for a crash dump.</span></p>
<p></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Use tools like adplus or procdump (my personal choice) to generate memory dumps of the suspect process, so that it could be debugged later.</span></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p style="margin:0in 0in 8pt;"><span style="color:#003366;font-family:courier new,courier;font-size:medium;">BTW, if you feel perfmon analysis is complex, don&#39;t worry. Tools make life easier. Find PAL (<a href="http://pal.codeplex.com">http://pal.codeplex.com</a>) <br /></span></p>
<p style="margin:0in 0in 8pt;"><span style="font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Hope this&nbsp;helps!!<br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Cheers!<br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">Ajith Kumar<br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">System Center Support.<br /></span></p>
<p><span style="color:#003366;font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p></p>
<p></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
  </channel>
</rss>