Skip to content

Instantly share code, notes, and snippets.

@vineethrp
Created February 25, 2020 20:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vineethrp/4356e66694269d1525ff254d7f213aef to your computer and use it in GitHub Desktop.
Save vineethrp/4356e66694269d1525ff254d7f213aef to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
#set -x
CPUS="0-11,24-35"
echo "Creating cgroups.."
sudo cgcreate -g cpu,cpuset:set1
sudo cgcreate -g cpu,cpuset:set2
echo "Setting cpuset.cpus to $CPUS..."
sudo cgset -r cpuset.cpus="$CPUS" set1
sudo cgset -r cpuset.cpus="$CPUS" set2
echo "Setting cpuset.mems to 0..."
sudo cgset -r cpuset.mems=0 set1
sudo cgset -r cpuset.mems=0 set2
echo "Setting shares..."
sudo cgset -r cpu.shares=10240 set1
sudo cgset -r cpu.shares=2 set2
echo "Setting tags..."
sudo cgset -r cpu.tag=1 set1
sudo cgset -r cpu.tag=1 set2
for j in $(seq 1 16); do
sudo cgexec -g cpu,cpuset:set1 sysbench --test=cpu --cpu-max-prime=100000 --max-time=30 run > "out/log.set1.$j" 2>&1 &
done
for j in $(seq 1 32); do
sudo cgexec -g cpu,cpuset:set2 sysbench --test=cpu --cpu-max-prime=100000 --max-time=30 run > "out/log.set2.$j" 2>&1 &
done
wait
echo "("`grep "events per second" out/log.set1.*|awk '{print $5}'|tr '\n' '+'`"0.0)/16" | bc -l
echo "("`grep "events per second" out/log.set2.*|awk '{print $5}'|tr '\n' '+'`"0.0)/32" | bc -l
sudo cgset -r cpu.tag=0 set1
sudo cgset -r cpu.tag=0 set2
sudo cgdelete -g cpu,cpuset:set1
sudo cgdelete -g cpu,cpuset:set2
@aaronlu
Copy link

aaronlu commented Feb 26, 2020

sudo cgexec -g cpu,cpuset:set2 /usr/local/bin/sysbench --test=cpu --threads=24 --cpu-max-prime=100000 --time=35 run > "out/log.set2" 2>&1 &
sleep 5
sudo cgexec -g cpu,cpuset:set1 /usr/local/bin/sysbench --test=cpu --threads=12 --cpu-max-prime=100000 --time=30 run > "out/log.set1" 2>&1 &

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment