I'm looking for a tool that can help me figure out what application/process that is using my CPU?

Issue: Some evenings, one server uses 100% CPU. Only some, and never in working hours.

(OS: Windows Server 2012)

Tools I have tried:

  • Task Manager - Only real time
  • Resource Manager: Only real time
  • Process Explorer from sysinternals: Only real time
  • Performance Monitor/perfmon: Can log to a file, but only shows me that CPU usage goes to 100% - can't tell me the actual process causing it...

Is there a windows tool or 3rd party tool that can help me?

  • Looks like it. I will give it a try, and update here tomorrow. Thanks.
    – Lisbjerg
    Oct 22 '15 at 12:49
  • @PJ: Worked fine, thanks. Please post an answer so I can mark it as answer. (My problem was the TSM backup (As expected, but nice to get it confirmed))
    – Lisbjerg
    Oct 23 '15 at 8:37

RESOURCE ANSWER: https://superuser.com/questions/453909/log-cpu-by-process-over-time (Please ensure to uptick on the article link answer for its credit as well)

Software Download Link: Process Monitor

  1. Enable collections of profiling events
  2. Options | Profiling Events
  3. Thread Profiling Options window --> Check Generate Thread Profiling Events
  4. Start collecting data for your time period needs. Set up filters and enable drop filtered events when collecting extended periods of time. Then go to Tools | Process Activity Summary:
  5. You should get a list of all active processes you recorded, with their activity over time.
  6. Open the details for a single process by double-clicking on it, and inspect the timestamps for certain events in the graph.
  • 1
    Worked as I needed, thanks! Remember to remove registry, file and network from monitor and then set the "drop filters events", otherwise log will be very large. I did it, and still got 16Gb over a 12 hour period.
    – Lisbjerg
    Oct 23 '15 at 13:48

Using Performance Monitor, you're right that monitoring Processor will only show you CPU usage. To find what is using the CPU you want to to monitor Process. Add Process > % Processor Time and choose <All Instances>

  • Almost works... It seems like it only monitors the processes that are running at the time when I start the monitor. But I didn't know, and it is a good fast way to get some more info on individual processes. Thanks
    – Lisbjerg
    Oct 23 '15 at 8:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.