Using Fedora's Stress Command
To stress test the machine, we should install the stress command.
Login as root
If the compile tools are not installed then install them:
yum install gcc gcc-c++ autoconf automake
Then install the command itself:
wget http://pkgs.fedoraproject.org/repo/pkgs/stress/stress1.0.4.tar.gz/a607afa695a511765b40993a64c6e2f4/stress-1.0.4.tar.gz
tar zxvf stress-1.0.4.tar.gz
cd stress-1.0.4
./configure
make
make install
To do the stress tests themselves:Stress CPU for 10 minutes:
stress –c 5 –t 1200s
Stress Memory for 10 minutes
stress –m 10 –t 1200s
Stress disk io for 10 minutes
stress –d 10 –t 1200s
The first command will push CPU to 500%. It only works on one core, so it may need to run several time simultaneously, depending on how many cores there are. The second command produces 10 spinning process, and the third 10 spinning disk write processes.The commands can be combined (-c 5 –m 10 –d 10 –t 1200s).
Using A Script
But what if the system is locked down and the stress command cannot be installed? It is possible to perform the stress test using scripting instead. The following scripts do the job.This script should hammer the CPU load. It runs a huge number of awk calculations as several background processes
#!/bin/bash
if [ $1 ]; then
NUM_PROC=$1
else
NUM_PROC=10
fi
uptime
for i in $(seq 1 $NUM_PROC ); do
awk 'BEGIN {for(i=0;i<10000;i++)for(j=0;j<10000;j++);}' &
pidarr[$i]=$!
echo ${pidarr[$i]}
done
ps -fp "${pidarr[*]}"
uptime
We can use dd and a variation of the above script to thrash the disk IO:
#!/bin/bash
if [ $1 ]; then
NUM_PROC=$1
else
NUM_PROC=10
fi
for i in $(seq 1 $NUM_PROC ); do
dd if=/dev/sda of=/dev/null &
pidarr[$i]=$!
echo ${pidarr[$i]}
done
ps -fp "${pidarr[*]}"
And for memory, we can use another variation:
#!/bin/bash
if [ $1 ]; then
NUM_PROC=$1
else
NUM_PROC=2
fi
BS=$(free | grep "^Mem" | awk '{print $2}' | head -1)
for i in $(seq 1 $NUM_PROC ); do
dd if=/dev/urandom bs=$BS of=/dev/null count=1050 &
pidarr[$i]=$!
echo ${pidarr[$i]}
done
ps -fp "${pidarr[*]}"
This caches huge blocks of random numbers (using a block size of the total amount of used space in the system). Doing it a couple of times simultaneously will do the trick.
No comments :
Post a Comment