I would like to test fake load on the server, I'm looking for some burn-in or benchmark command line utility that would generate CPU load on the system.

I would like to be able to burn-in only CPU (no harddisk load, network and co) and that I would be able to set the period in which the load will run. Meaning I want something that would be able to run: CPU load for 10min on the system.

Any ideas?

link|improve this question

47% accept rate
feedback

4 Answers

up vote 5 down vote accepted

You can download and install the "stress" utility... It allows you generate CPU, Memory, Disk and IO load from the command line.

Homepage: http://weather.ou.edu/%7Eapw/projects/stress/

FAQ: http://weather.ou.edu/%7Eapw/projects/stress/FAQ

link|improve this answer
feedback

I prefere floating point ops:

for i in `seq 64`; do perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $sqrt = sqrt($j) for (1..9999); }' & done

Be aware of your CPU number :-)

link|improve this answer
feedback

This is something I frequently want to do. But I don't have a good way of doing it. I just write a small Perl script that will just loop for as many seconds as I want.

E.g. (for 10 minutes):

perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $j *= 1.1 for (1..9999); }'

Of course if you have n processors you might want to add a bash loop to create that many processes:

#!/bin/bash
# e.g. for 4 processors
for i in 1 2 3 4; do
    perl -e .... &
done
wait
link|improve this answer
2  
Minor point: Won't that for loop run them in series, rather than parallel? I think (perl -e '...' &) to detach them from the shell would do the job, though. – SmallClanger Dec 7 '10 at 9:36
You're right. I'll correct my post. Thanks for pointing that out. – PP. Dec 7 '10 at 15:02
feedback

Your Answer

 
or
required, but never shown

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