detecting which process consumes all the CPU

The CPU usage on my Windows Server spikes up to 100% every 22 minutes.

How do I know? I have set up a "Data Collector Set" in perfmon, ran it for several hours on my server and then viewed the log file. I can see that the CPU usage jumps to 100% every 22 minutes.

How do I tell which process uses it?

PS. Perfmon can measure CPU usage for "all processes", but only for the processes that are already running when the logging is started...

So. Any ideas (except for sitting and staring at Task Manager for 22 minutes :)

Solution 1:

A bit unconventional perhaps, but this is one solution.

Download procexp.exe from Sysinternals and run it.

Click on one of the graphs in the top area.

Let the graph run for 10 minutes or so. It updates every second. If you widen the graph window, you'll be able to track a bigger time delta.

When you see a spike, use your mouse cursor to hover over the graph and see the responsible processes.

Process Explorer Graphs