server-benchmarks/run.sh

59 lines
2 KiB
Bash
Executable file

#!/bin/bash
# Skip prompts so we can run unattended
export DEBIAN_FRONTEND=noninteractive
if [ $# -eq 0 ]; then
echo 'Missing argument, provider name'
exit 1
fi;
PROVIDER=$1
swapoff -a
apt-get update
apt-get upgrade -y
apt-get install sysbench nginx mysql-server python redis-server -y
# Grabs the major version of sysbench so we can use the correct parameters for MySQL
SYSBENCH_MAJOR_VERSION=$(sysbench --version | cut -d ' ' -f 2 | cut -d '.' -f 1)
wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod +x speedtest-cli
mkdir results
cat /proc/cpuinfo > results/cpuinfo.log
sysbench --test=cpu run > results/cpu.log
sysbench --test=memory run > results/memory-read.log
sysbench --test=memory --memory-oper=write run > results/memory-write.log
sysbench --test=fileio prepare
sysbench --test=fileio --file-test-mode=rndrw run > results/fileio.log
sysbench --test=fileio cleanup
if [ "$SYSBENCH_MAJOR_VERSION" == "0" ]; then
# Ubuntu 16.04
mysql -uroot -e "CREATE DATABASE sbtest;"
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root run > results/mysql.log
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root cleanup
else
# Ubuntu 18.04
mysql -uroot -e "CREATE DATABASE sbtest;"
sysbench --db-driver=mysql --table-size=1000000 --mysql-user=root /usr/share/sysbench/oltp_read_write.lua prepare
sysbench --db-driver=mysql --table-size=1000000 --mysql-user=root /usr/share/sysbench/oltp_read_write.lua run > results/mysql.log
sysbench --db-driver=mysql --table-size=1000000 --mysql-user=root /usr/share/sysbench/oltp_read_write.lua cleanup
fi
redis-benchmark -q -n 100000 --csv > results/redis-benchmark.log
./speedtest-cli --server=16089 > results/speedtest1.log
./speedtest-cli --server=16089 > results/speedtest2.log
./speedtest-cli --server=16089 > results/speedtest3.log
# Wraps it all up in a nice package
tar -zcvf "results-$PROVIDER.tgz" results