How to set CPU load on a Red Hat Linux box?

19,023

Solution 1

This is exactly what you need (internet archive link): https://web.archive.org/web/20120512025754/http://weather.ou.edu/~apw/projects/stress/stress-1.0.4.tar.gz

From the homepage: "stress is a simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system. It is written in C, and is free software licensed under the GPL."

Solution 2

Find a simple prime number search program that has source code. Modify the source code to add a nanosleep call to the main loop with whichever delay gives you the desired CPU load.

Solution 3

One common way to get some load on a system is to compile a large software package over and over again. Something like the Linux kernel.

Get a copy of the source code, extract the tar.bz2, go into the top level source directory, copy your kernel config from /boot to .config or zcat /proc/config.gz > .config, the do make oldconfig, then while true; do make clean && make bzImage; done

If you have an SMP system, then make -j bzImage is fun, it will spawn make tasks in parallel.

One problem with this is adjusting the CPU load. It will be a maximum CPU load except for when waiting on disk I/O.

Solution 4

It really depends what you're trying to test. If you're just testing CPU load, simple scripts to eat empty CPU cycles will work fine. I personally had to test the performance of a RAID array recently and I relied on Bonnie++ and IOZone. IOZone will put a decent load on the box, particularly if you set the file size higher than the RAM.

You may also be interested in this Article.

Solution 5

You could possibly do this using a Bash script. Use " ps -o pcpu | grep -v CPU" to get the CPU Usage of all the processes. Add all those values together to get the current usage. Then have a busy while loop that basically keeps on checking those values, figuring out the current CPU usage, and waiting a calculated amount of time to keep the processor at a certain threshhold. More detail is need, but hopefully this will give you a good starting point.

Take a look at this CPU Monitor script I found and try to get some other ideas on how you can accomplish this.

Share:
19,023
dommer
Author by

dommer

I'm a programmer currently working on a ruby on rails intranet site.

Updated on June 13, 2022

Comments

  • dommer
    dommer almost 2 years

    I have a RHEL box that I need to put under a moderate and variable amount of CPU load (50%-75%).

    What is the best way to go about this? Is there a program that can do this that I am not aware of? I am happy to write some C code to make this happen, I just don't know what system calls will help.

  • Jesse
    Jesse almost 14 years
    Or straight from a terminal you could type: while true; do true; done
  • jlliagre
    jlliagre almost 12 years
    This will load a CPU to 100% CPU but nice and renice won't allow to tune this load, only to weight it with competing processes, if any.
  • Gautam Somani
    Gautam Somani over 7 years
    Above link is not working. Found it here: people.seas.harvard.edu/~apw/stress
  • Vincent Guttmann
    Vincent Guttmann almost 3 years
    Both links aren't working. Here's the internet archive link: web.archive.org/web/20120512025754/http://weather.ou.edu/~ap‌​w/…