Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am looking to log CPU usage to a file over time on an RHEL system, and have seen this, but it doesn't seem to produce the right results - it seems like an anomaly between how ps and top calculate CPU usage.

I am trying to profile an Openfire server's CPU usage as we run various load tests against it. The script I am using does this:

while true;
do
dateStamp=$(($(date +%s%N)/1000000000))
echo -n $dateStamp >>usage.log
ps -o pcpu,rsz -p $1 | tail -n1 >>usage.log; sleep $2;
done

But the first data item from ps (pcpu) seems to be cumulative - I would like a simple number for current CPU usage, as is provided by top.

Does anyone know of an approach that provides this?

Thanks in advance

Rich

share|improve this question
add comment

1 Answer 1

up vote 2 down vote accepted

I recommend nmon (with nmon analyser). You can get much more than just CPU usage and its extremely easy to use.

share|improve this answer
    
Looks fantastic, but sadly I won't be allowed to install it on the machine I am doing these tests on :( –  Rich Oct 15 '10 at 13:50
    
This is for a Java app - I ended up using the values exposed through JMX to get the information I wanted (see stackoverflow.com/questions/25552/… for more information). I'm going to accept this answer anyway as it would have done the trick had I had more freedom on the machine! –  Rich Oct 18 '10 at 8:35
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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