<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ASP.NET Debugging : High CPU</title><link>http://blogs.msdn.com/tom/archive/tags/High+CPU/default.aspx</link><description>Tags: High CPU</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>XPerf: A CPU Sampler</title><link>http://blogs.msdn.com/tom/archive/2008/10/10/xperf-a-cpu-sampler.aspx</link><pubDate>Fri, 10 Oct 2008 13:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8992973</guid><dc:creator>Tom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/tom/comments/8992973.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8992973</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8992973</wfw:comment><description>&lt;p&gt;Seema just had a great about using XPerf to troubleshoot CPU issues when using Silverlight.&amp;#160; This can also be used in the same way to troubleshoot ASP.NET or IIS.&lt;/p&gt;  &lt;p&gt;What can XPerf tell you?&amp;#160; Seema answers that question, it can find out:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;Is my app asking Silverlight to constantly spin on CPU cycles.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Whether one UI layout or design is more expensive than the other.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Whether the time is spent in drawing (agcore.dll), the plug-in’s interactions with (npctrl.dll), or in compilation/JIT (coreclr.dll)&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;How much is stretching/blending/rotating that video going to cost in terms of CPU cycles? How about if you encode it differently?&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can read more about XPerf and how to download and use it from Seema post &lt;a href="http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Note: The tools only work on Vista and Windows Server 2008.&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8992973" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/tom/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+CPU/default.aspx">High CPU</category></item><item><title>How do you test the performance of your web site?</title><link>http://blogs.msdn.com/tom/archive/2008/09/10/how-do-you-test-the-performance-of-your-web-site.aspx</link><pubDate>Wed, 10 Sep 2008 13:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8937133</guid><dc:creator>Tom</dc:creator><slash:comments>22</slash:comments><comments>http://blogs.msdn.com/tom/comments/8937133.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8937133</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8937133</wfw:comment><description>&lt;p&gt;I wanted to get a feel for what tools people are using to test the performance of their website.&amp;#160; My questions are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Do you check page-load times?&amp;#160; &lt;/li&gt;    &lt;li&gt;Do you dig in to see which files are taking the time&lt;/li&gt;    &lt;li&gt;How do you track down a page that uses a lot of memory&lt;/li&gt;    &lt;li&gt;How do you track down a high CPU consuming page&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I don’t want to list any possible tools as I’d like to hear what people are using without me putting any suggestions out.&lt;/p&gt;  &lt;p&gt;If I don’t see some being mentioned, I’ll be sure to bring it up so we have a holistic view of the tools.&lt;/p&gt;  &lt;p&gt;Look forward to seeing what people use.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8937133" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+Memory/default.aspx">High Memory</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+CPU/default.aspx">High CPU</category></item><item><title>ASP.NET Tips: Using Process Explorer to help with high CPU</title><link>http://blogs.msdn.com/tom/archive/2008/06/24/asp-net-tips-using-process-explorer-to-help-with-high-cpu.aspx</link><pubDate>Tue, 24 Jun 2008 13:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8643375</guid><dc:creator>Tom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/tom/comments/8643375.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8643375</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8643375</wfw:comment><description>&lt;p&gt;I am not sure how many people are familiar with the great tools that &lt;a href="http://blogs.technet.com/markrussinovich/about.aspx"&gt;Mark&lt;/a&gt; and the &lt;a href="http://technet.microsoft.com/en-us/sysinternals/default.aspx"&gt;Sysinternals&lt;/a&gt; folks have created, but this is one that is a must for monitoring the performance of your machine.&amp;#160; It is called &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx"&gt;Process Explorer&lt;/a&gt;.&amp;#160; With it, you can see what is taking up your CPU time in real time as well as which process has what handles or DLL’s open. &lt;/p&gt;  &lt;p&gt;This tool can be used with ASP.NET to keep a quick eye on the performance of your web server.&amp;#160; You can add it to your startup folder so it always starts and you can watch things progress in your server and make sure things don’t get out of control.&amp;#160; For a great video on using this tool, check out: &lt;a title="The case of the Unexplained" href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=722"&gt;The case of the Unexplained&lt;/a&gt;.&amp;#160; You can also check out Mark’s blog for many examples that use Process Explorer.&amp;#160; This tool has saved me a lot of time in tracking down performance issues and a lot of the time, you can use it instead of needed to attach a debugger or look at a dump.&lt;/p&gt;  &lt;p&gt;I would highly suggest watching the video or checking out Mark’s blog for more details and to see if you can apply the same things to your environment.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f06%2f24%2fasp-net-tips-using-process-explorer-to-help-with-high-cpu.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f06%2f24%2fasp-net-tips-using-process-explorer-to-help-with-high-cpu.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8643375" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET+Tip/default.aspx">ASP.NET Tip</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+CPU/default.aspx">High CPU</category></item><item><title>ASP.NET and Performance</title><link>http://blogs.msdn.com/tom/archive/2008/06/23/asp-net-and-performance.aspx</link><pubDate>Mon, 23 Jun 2008 21:29:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8643250</guid><dc:creator>Tom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/tom/comments/8643250.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8643250</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8643250</wfw:comment><description>&lt;p&gt;I wanted to talk about monitoring performance in ASP.NET for a bit.&amp;#160; I have already posted a few postings that talk around this issue, namely:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="ASP.NET Debugging - High Memory part 5 - Fragmentation" href="http://blogs.msdn.com/tom/archive/2008/02/18/high-memory-part-5-fragmentation.aspx"&gt;ASP.NET Debugging - High Memory part 5 – Fragmentation&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="ASP.NET Debugging - ASP.NET Tips- How to use DebugDiag to track down" href="http://blogs.msdn.com/tom/archive/2008/04/25/asp-net-tips-how-to-use-debugdiag-to-track-down-where-a-performance-problem-is-coming-from.aspx"&gt;ASP.NET Debugging - ASP.NET Tips- How to use DebugDiag to track down&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;But there are some other things to keep in mind.&amp;#160; The best place to look for information on how to watch the performance of an ASP.NET Application is in the “Improving .NET Application Performance” guide on MSDN.&amp;#160; Specifically &lt;a href="http://msdn.microsoft.com/en-us/library/ms998579.aspx"&gt;Chapter 15 – Measuring .NET Application Performance&lt;/a&gt;.&amp;#160; There are a lot of other very useful pieces of information in this.&amp;#160; So I would suggest you review any Chapter that applies to your application.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; If you want to get a description of all the counters, check out: &lt;a title="Performance Counters for ASP.NET" href="http://msdn2.microsoft.com/en-us/library/fxk122b4.aspx"&gt;Performance Counters for ASP.NET&lt;/a&gt; and &lt;a title="Memory Performance Counters" href="http://msdn2.microsoft.com/en-us/library/x2tyfybc.aspx"&gt;Memory Performance Counters&lt;/a&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;As for how to capture the perfmon data (perfmon is the tool that we use to capture the performance information), take a look at my various posts around the different situations.&amp;#160; This goes through what counters are important in each situation:&lt;/p&gt;  &lt;p&gt;&lt;a title="ASP.NET Tips- What to gather to troubleshoot" href="http://blogs.msdn.com/tom/archive/2008/05/21/asp-net-tips-what-to-gather-to-troubleshoot.aspx"&gt;ASP.NET Tips- What to gather to troubleshoot&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The main ones to keep an eye on are the memory counters (to watch if memory is staying under control or becoming unbounded) and the ones around the ThreadPool (Queuing, Request Execution Time, etc) to make sure things aren’t getting queued up or blocked in some manner.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f06%2f23%2fasp-net-and-performance.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f06%2f23%2fasp-net-and-performance.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8643250" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/tom/archive/tags/Crash/default.aspx">Crash</category><category domain="http://blogs.msdn.com/tom/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+Memory/default.aspx">High Memory</category><category domain="http://blogs.msdn.com/tom/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET+Tip/default.aspx">ASP.NET Tip</category><category domain="http://blogs.msdn.com/tom/archive/tags/Hang/default.aspx">Hang</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+CPU/default.aspx">High CPU</category></item><item><title>ASP.NET Tips: What to gather to troubleshoot</title><link>http://blogs.msdn.com/tom/archive/2008/05/21/asp-net-tips-what-to-gather-to-troubleshoot.aspx</link><pubDate>Wed, 21 May 2008 18:38:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8528443</guid><dc:creator>Tom</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/tom/comments/8528443.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8528443</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8528443</wfw:comment><description>&lt;p&gt;So now that I am done with all the individual posts, I thought I would wrap them all together.&amp;#160; So here are all of the posts that I created on gathering information when you are having a problem.&lt;/p&gt;  &lt;p&gt;Please keep in mind that these are geared towards the type of information you would be sending to Microsoft Support.&amp;#160;&amp;#160; So if you are troubleshooting something yourself, you have have some better methods, such as Tracing or Logging.&lt;/p&gt;  &lt;p&gt;So without further ado, here is the complete list:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="ASP.NET Tips- What to gather to troubleshoot – part 1 – High CPU or Hang" href="http://blogs.msdn.com/tom/archive/2008/05/02/asp-net-tips-what-to-gather-to-troubleshoot-part-1-high-cpu.aspx"&gt;High CPU or Hang&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="ASP.NET Tips- What to gather to troubleshoot – part 2 – High Memory" href="http://blogs.msdn.com/tom/archive/2008/05/05/asp-net-tips-what-to-gather-to-troubleshoot-part-2-high-memory.aspx"&gt;High Memory&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="ASP.NET Tips- What to gather to troubleshoot – part 3 – Crash" href="http://blogs.msdn.com/tom/archive/2008/05/06/asp-net-tips-what-to-gather-to-troubleshoot-part-3-crash.aspx"&gt;Crash&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="ASP.NET Tips- What to gather to troubleshoot - part 3a - Crash revisited" href="http://blogs.msdn.com/tom/archive/2008/05/15/asp-net-tips-what-to-gather-to-troubleshoot-part-3a-crash-revisited.aspx"&gt;Crash revisited&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="ASP.NET Tips- What to gather to troubleshoot - part 4 - Deadlocks" href="http://blogs.msdn.com/tom/archive/2008/05/14/asp-net-tips-what-to-gather-to-troubleshoot-part-4-deadlocks.aspx"&gt;Deadlocks&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="ASP.NET Tips- What to gather to troubleshoot - part 5 - OutOfMemoryException" href="http://blogs.msdn.com/tom/archive/2008/05/19/asp-net-tips-what-to-gather-to-troubleshoot-part-5-outofmemoryexception.aspx"&gt;OutOfMemoryException&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="ASP.NET Tips- What to gather to troubleshoot - part 6 - Recycle due to memoryLimit" href="http://blogs.msdn.com/tom/archive/2008/05/20/asp-net-tips-what-to-gather-to-troubleshoot-part-6-recycle-due-to-memorylimit.aspx"&gt;Recycle due to memoryLimit&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hope that these are useful to everyone and hope that you can put these to use.&amp;#160; If you think there is a situation that I haven’t covered, please let me know and I will add it also.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f05%2f21%2fasp-net-tips-what-to-gather-to-troubleshoot.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f05%2f21%2fasp-net-tips-what-to-gather-to-troubleshoot.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8528443" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/tom/archive/tags/Crash/default.aspx">Crash</category><category domain="http://blogs.msdn.com/tom/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+Memory/default.aspx">High Memory</category><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET+Tip/default.aspx">ASP.NET Tip</category><category domain="http://blogs.msdn.com/tom/archive/tags/Hang/default.aspx">Hang</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+CPU/default.aspx">High CPU</category></item><item><title>ASP.NET Tips: What to gather to troubleshoot – part 1 – High CPU or Hang</title><link>http://blogs.msdn.com/tom/archive/2008/05/02/asp-net-tips-what-to-gather-to-troubleshoot-part-1-high-cpu.aspx</link><pubDate>Fri, 02 May 2008 19:13:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8450990</guid><dc:creator>Tom</dc:creator><slash:comments>12</slash:comments><comments>http://blogs.msdn.com/tom/comments/8450990.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8450990</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8450990</wfw:comment><description>&lt;p&gt;On machines running IIS5 and IIS5.1, these are the Inetinfo.exe, DLLHost.exe and/or ASPNET_WP.exe processes. On machines running IIS 6 or 7, this is the w3wp.exe process.&lt;/p&gt;  &lt;p&gt;The following steps will allow us to get log files of the processes hosting the IIS or ASP.NET applications, as well as obtain the thread ID that is using the CPU that will directly correspond to the log file. Please let us know if you have any questions about using this process.&lt;/p&gt;  &lt;h3&gt;Before the issue occurs&lt;/h3&gt;  &lt;p&gt;A. Download DebugDiag:    &lt;br /&gt;======================&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Install the &lt;a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1286"&gt;Debug Diagnostic tool&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;The default installation location for the package is C:\Program Files\IIS Resources\DebugDiag. It can be changed. &lt;/li&gt;    &lt;li&gt;Make sure any other monitoring and debugging tools are not running. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;B. Create a Performance Monitor log:    &lt;br /&gt;====================================&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;In Performance Monitor, expand &lt;strong&gt;Performance Logs and Alerts&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Right Click on &lt;strong&gt;Counter Logs&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Choose &lt;strong&gt;New Log Settings...&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Enter a descriptive name &lt;/li&gt;    &lt;li&gt;Note the log file location for later (or go to the &lt;strong&gt;Log Files&lt;/strong&gt; tab and change the location) &lt;/li&gt;    &lt;li&gt;Click the &lt;strong&gt;Add Counters &lt;/strong&gt;button &lt;/li&gt;    &lt;li&gt;Click the &lt;strong&gt;All Counters&lt;/strong&gt; radio button.&amp;#160; Click the &lt;strong&gt;Select instances from list&lt;/strong&gt; radio button, and select the process hosting the IIS or ASP.net application.&amp;#160; On Windows 2000 and Windows XP, this will be &lt;b&gt;inetinfo&lt;/b&gt;, &lt;b&gt;dllhost&lt;/b&gt;, or &lt;b&gt;aspnet_wp&lt;/b&gt; .&amp;#160; On Windows 2003 and Windows 2008 this will be &lt;b&gt;w3wp&lt;/b&gt;.&amp;#160; NOTE: It is possible you will see multiple instances of dllhost on IIS5/5.1 or w3wp on IIS6/IIS7 in the list of available processes.&amp;#160; If you do, or if you are unsure of which process to monitor, please cltrl-click to multiselect all of the available IIS/ASP.net choices. &lt;/li&gt;    &lt;li&gt;If the application &lt;b&gt;is not &lt;/b&gt;an ASP.net application, select the following from the &lt;strong&gt;Performance Object&lt;/strong&gt; dropdown, being sure to &lt;strong&gt;Add&lt;/strong&gt; each one as you select it:       &lt;ul&gt;       &lt;li&gt;Process &lt;/li&gt;        &lt;li&gt;Thread &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;If the application &lt;b&gt;is &lt;/b&gt;an ASP.net application, select the following from the &lt;strong&gt;Performance Object&lt;/strong&gt; dropdown, being sure to &lt;strong&gt;Add&lt;/strong&gt; each one as you select it:&lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;Process &lt;/li&gt;        &lt;li&gt;Thread &lt;/li&gt;        &lt;li&gt;.NET CLR Data &lt;/li&gt;        &lt;li&gt;.NET CLR Exceptions &lt;/li&gt;        &lt;li&gt;.NET CLR Interop &lt;/li&gt;        &lt;li&gt;.NET CLR Jit &lt;/li&gt;        &lt;li&gt;.NET CLR Loading &lt;/li&gt;        &lt;li&gt;.NET CLR LocksAndThreads &lt;/li&gt;        &lt;li&gt;.NET CLR Memory &lt;/li&gt;        &lt;li&gt;.NET CLR Networking &lt;/li&gt;        &lt;li&gt;.NET CLR Remoting &lt;/li&gt;        &lt;li&gt;.NET CLR Security &lt;/li&gt;        &lt;li&gt;ASP.NET &lt;/li&gt;        &lt;li&gt;ASP.NET Applications &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Click &lt;strong&gt;Close&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;For the ASP.NET counters, select the version that you are wanting to monitor.&amp;#160; Ex.&amp;#160; For 1.1 framework, select &lt;strong&gt;ASP.NET v1.1.4322&lt;/strong&gt; and &lt;strong&gt;ASP.NET Applications v1.1.4322&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;IMPORTANT:&lt;/u&gt;&lt;/b&gt; The Data Sampling Interval and time to start monitoring is subjective to when the CPU spike reproduces. Due to the log size, monitor the server to gather the needed data while not overwhelming the server.&lt;/p&gt;  &lt;p&gt;Note: For more information on Performance monitor, see &lt;a href="blocked::http://support.microsoft.com/?id=248345"&gt;http://support.microsoft.com/?id=248345&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;After the issue occurs &lt;/h3&gt;  &lt;p&gt;A. Let the process run    &lt;br /&gt;======================     &lt;br /&gt;Now let the server run for a few minutes to document the environment in which the high CPU/hang is occurring in.&lt;/p&gt;  &lt;p&gt;B. Capture the memory Dumps    &lt;br /&gt;=========================== &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Launch DebugDiag      &lt;ul&gt;       &lt;li&gt;Start, Program Files, IIS Diagnostics, Debug Diagnostics, Debug Diagnostic Tool &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;From the Tools menu, select &lt;strong&gt;Create IIS Hang Dump&lt;/strong&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Repeat Step 2 every 1 - 2 minutes until you have 3 sets of memory dumps. Make sure the previous memory dumps completed before continuing to capture the next set of memory dumps. The multiple memory dumps will allow us to see if the process is progressing during the hang/high CPU symptoms or whether the process is actually performing work.&lt;/p&gt;  &lt;p&gt;Files will be created in the following path by default:    &lt;br /&gt;C:\Program Files\IIS Resources\DebugDiag\Logs\Misc&lt;/p&gt;  &lt;p&gt;C. Stop the Performance Monitor log    &lt;br /&gt;===================================&lt;/p&gt;  &lt;p&gt;In Performance Monitor: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Right click on your log that is now listed under &lt;strong&gt;Counter Logs&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Choose &lt;strong&gt;Stop Log&lt;/strong&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f05%2f02%2fasp-net-tips-what-to-gather-to-troubleshoot-part-1-high-cpu.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f05%2f02%2fasp-net-tips-what-to-gather-to-troubleshoot-part-1-high-cpu.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8450990" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/tom/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET+Tip/default.aspx">ASP.NET Tip</category><category domain="http://blogs.msdn.com/tom/archive/tags/Hang/default.aspx">Hang</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+CPU/default.aspx">High CPU</category></item></channel></rss>