CPU History Recording
June 2, 2009 9:49 AM   Subscribe

I'm trying to find an app that will monitor and record CPU usage *by Process*

...I'm finding all kinds of monitoring apps and even some that will record history, but only of the total percentage used, not broken down by process.

Any suggestions?
posted by AltReality to Computers & Internet (14 answers total)
 
Does this CPU run an operating system?
posted by rhizome at 10:00 AM on June 2, 2009


what OS?
posted by mmascolino at 10:17 AM on June 2, 2009


"ps aux"

It parses /proc/[pid]/stat and displays them nicely. What you're interested in is total time (TIME), or perhaps the ratio of total time versus the time versus uptime (%CPU).
posted by pwnguin at 10:29 AM on June 2, 2009


Windows has the rather excellent Perfmon. Unix systems can do fine with top in batch mode.
posted by mkb at 10:41 AM on June 2, 2009


assuming windows: taskmanager>>Processes, View Menu>>Select columns
posted by pyro979 at 11:06 AM on June 2, 2009


Response by poster: My fault....Win XP. :)
posted by AltReality at 11:09 AM on June 2, 2009


Response by poster: I can see the processes in real time through task manager, but I am looking to record a history of them, by process, not just total CPU usage. I need about 2 hours of the ups and downs of each process running on the system.

As I understand it, perfmon only shows totals, and task manager doesn't record anything.

Thanks for the suggestions though....anything else?
posted by AltReality at 11:11 AM on June 2, 2009


I'm not sure about 2 hours, but Process Explorer will get you pretty close, if you set the update interval to 5 or 10 seconds.
posted by qvtqht at 11:16 AM on June 2, 2009


Perfmon (you already have it, it's built in) is designed to do this. It also monitors about 10000 other things and is fairly opaque so I can't be much more help than that.
posted by chairface at 11:26 AM on June 2, 2009


XP perfmon will provide breakouts by process. In the Add Counter dialogue, choose object = Process, counter = % Processor Time, Instance = [whatever processes you want to profile].

Perfmon should be happy to record this data into a log file, which you can read later.
posted by molybdenum at 11:28 AM on June 2, 2009


Response by poster: Is there any way to make perfmon record all processes, as they start or stop, without having to name specifically which ones to monitor?
posted by AltReality at 12:19 PM on June 2, 2009


Is there any way to make perfmon record all processes, as they start or stop, without having to name specifically which ones to monitor?

No.
posted by rhizome at 12:35 PM on June 2, 2009


Yes and no. You can monitor "all" (that's an option) and they will still be logged should they stop and restart, but any new processes that start up after logging begins will be ignored.
posted by shinybeast at 2:22 PM on June 2, 2009


If you are handy with vbscript it should be possible to script something up - in fact a lot of the hard work has already been done - check this out

All you need to do is take the script down the bottom, have it run every 5 seconds or whatever, change the processes it queries, output its results to a log file and you are sweet. Customisable and scaleable.

Personally, I would go for perfmon or process explorer. If you don't care about free and need this on a large enterprise scale, I can highly recommend Edgesight which I've used in the past for capturing, storing and analysing metrics on all sorts of things. It requires a back end database to store info on, server to run the web front end etc etc so its potentially overkill.
posted by Admira at 3:23 PM on June 2, 2009


« Older Toddler dropping the F-bomb! How to get him to...   |   Great tool! Now can it help me do the bench press? Newer »
This thread is closed to new comments.