Showing results for 
Show  only  | Search instead for 
Did you mean: 

High CPU time



I am having problems locating the reason for high CPU time on one of the servers monitored by AppMon.

Please see below. There is CPU spike and it says 100% instrumented processes.

How can I find the exact process and code location that is consuming the CPU the most?



Looks like the CPU usage is coming from the instrumented process.

A good first step would be to look at the Response Time Hotspots for the specific agent on that Host.


Hello Martin,

I am sure that there will be a CPU sampling which triggers automatically so just open the session browser from the cockpit.



CPU samplings are not automatically triggered like memory dumps on OOM exceptions.


Method hotspots show time spent in I/O at Web Server/IIS.

I also noticed this in the PurePath analysis where it takes too much time to transition the call from the IIS agent to the .NET agent.

The highlighted area is where the transition from IIS agent to .NET agent goes.

I do not see any Sampling data. Given that this is a past incident I can no longer collect it.

Is there any way to turn the Sampling automatically on certain conditions?

I wonder what could be the I/O time in the IIS server and this is an ASP.NET application and the only thing IIS should do is to call the ASP.NET code. But instead it takes about 24sec to make the call from IIS agent to .NET agent.

Both agents are running on the same host.



There are a few things that could cause the time spent between IIS and ASP.NET.

Two examples I've seen bfore are time spent in a native IIS module, or it could be that the thread pool of the CLR is exhausted and it has to wait till resources are available.

Hi Patrick,

I was also in a search for CLR thread pool issue.

However there is 100% CPU issue which AppMon cannot tell me what it is.

It looks like it is not in the ASP.NET/CLR code itself as it is not reported in Response Time Hotspots.

During the incident it was confirmed that it was w3wp.exe that was consuming the most CPU resources. Also restarting the web server fixed the issue.

So that leaves me to think it is a IIS native module issue.

But the only native module that I know of is AppMon itself.

Is there a way to tell if AppMon was consuming too much CPU cycles?



Unfortunately not retroactively. The only way to measure the Overhead is with a CPU Sampling, but if this is an isolated incident the AppMon agent wouldn't be my first guess.


Is it possible with CPU sampling to get information about native calls?

Or it will only collect data about .NET and Java stacks?

It is only possible for Java and .Net, not for native agents.

Hello @Martin K.

CPU Sampling is just to identify an entry point and to analyze background threads.

  • Identify an entry point: Find your custom entry points to define Custom Entry Point Sensors.
  • Analyze background threads: If AppMon does not capture threads as PurePaths, analyze them with CPU sampling.

Note: AppMon sampling does not apply to native threads.