I\'m working on a small function, that gives my users a picture of how occupied the CPU is.
I\'m using cat /proc/loadavg
, which returns the well known 3 num
I took this program and modify the line: mem = 1024*1024*512; //512 mb to say this: mem = 1*1024*1024*1024; //1 GB and compile it.
$ gcc iss_mem.c -o iss_mem
And write a bash wrapper around the compiled version of the C program above. It helps me generate a lot of memory load in my server.
#!/bin/bash
# Author: Mamadou Lamine Diatta
# Senior Principal Consultant / Infrastructure Architect
# Email: diatta at post dot harvard dot edu
# --------------------------------------------------------------------------------------
# *************************************************************************************
memsize_kb=`grep -i MemTotal /proc/meminfo | awk '{print $2}'`
MemTotal=$(($memsize_kb*1024))
for i in `seq 1 50`
do
echo "`date +"%F:%H:%M:%S"` ----------------- Running [ $i ] iteration(s)"
MemToAlloc=$((1*1024*1204*1204))
# 1Gb of memory per iss_mem call
TRESHOLD=$(($MemTotal/$MemToAlloc))
# We are not supposed to make the system
# run out of memory
rand=1000
# High enough to force a new one
while (( $rand > $TRESHOLD ))
do
rand=$(($RANDOM/1000))
done
if [ $rand -eq 0 ]
then
rand=1
fi
echo `date +"%F:%H:%M:%S"` Running $rand iss_mem in parallel ...
for j in `seq 1 $rand`
do
${ISSHOME}/bin/iss_mem > /dev/null &
# NOTE: gcc iss_mem.c -o iss_mem
done
sleep 180
jobs -p
kill `jobs -p`
sleep 30
done
# -------------------------------------------------------------------------------------
# *************************************************************************************