天天看点

shell脚本sysbench-while语句和awk

最近测试CPU的性能,要求测试出CPU浮点计算的能力及在80核下CPU线性变化的曲线。

#!/bin/bash
# -------------------------------------------------------------------------------
# Description: Execute SYSBENCH comand under giving each thread an equal amount of CPU 
# Revision:    1.1
# Date:        2015/05/10
# Author:      chenjinxia
# Email:       [email protected]
# Website:     http://blog.csdn.net/chenjxloveyangds
# -------------------------------------------------------------------------------

#Get the Total of CPUS
TOTAL_CPU=`ls -l /sys/bus/cpu/devices|grep cpu|wc -l`
PRIME=80000
#Disable 1-79 CPUS
echo "Step one : Disable processors"
NUM=1
while [ $NUM -lt $TOTAL_CPU ]
do
echo "echo 0 > /sys/bus/cpu/devices/cpu$NUM/online"
echo 0 > /sys/bus/cpu/devices/cpu$NUM/online
NUM=`expr $NUM + 1`
done

echo "Step two : Run sysbench test"
#Create a new directory named by current time
TODAY=`date +%Y%m%d%H%M%S`
mkdir -p /home/testresult/sysbench_testCPU/$TODAY
TIME=0
while [ $TIME -lt expr $TOTAL_CPU ]
do
echo 1 > /sys/bus/cpu/devices/cpu$TIME/online
echo "sysbench --test=cpu --num-threads=`expr $TIME + 1` --cpu-max-prime=$PRIME run | grep "total time:"|awk '{print $3}'"
sysbench --test=cpu --num-threads=`expr $TIME + 1` --cpu-max-prime=$PRIME run | grep "total time:"|awk '{print $3}' > /home/testresult/sysbench_testCPU/$TODAY/`expr $TIME + 1`.csv
TIME=`expr $TIME + 1`
done