feat: drop old stuff, expand some tests

No longer testing on old Ubuntu versions, so dropped the sanity checks
around that. Added some additional `sysbench` tests, improved the speed
tests and did some naming clean up.
This commit is contained in:
Josh Sherman 2021-01-01 16:32:50 -06:00
parent 41625db4b1
commit a7def501f9
No known key found for this signature in database
GPG key ID: 55B058A80530EF22

61
run.sh
View file

@ -9,6 +9,7 @@ if [ $# -eq 0 ]; then
fi;
PROVIDER=$1
SPEEDTEST_SERVER=1774
swapoff -a
@ -16,44 +17,52 @@ 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
cat /proc/cpuinfo > results/proc-cpuinfo.txt
sysbench --test=cpu run > results/cpu.log
sysbench cpu run > results/sysbench-cpu.txt
sysbench --test=memory run > results/memory-read.log
sysbench --test=memory --memory-oper=write run > results/memory-write.log
sysbench memory run > results/sysbench-memory-read.txt
sysbench --memory-oper=write memory run > results/sysbench-memory-write.txt
sysbench --test=fileio prepare
sysbench --test=fileio --file-test-mode=rndrw run > results/fileio.log
sysbench --test=fileio cleanup
sysbench fileio prepare
sysbench --file-test-mode=rndrw fileio run > results/sysbench-fileio.txt
sysbench fileio cleanup
sysbench --threads=10 threads run > results/sysbench-threads.txt
sysbench --threads=10 mutex run > results/sysbench-mutex.txt
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
TESTS=(
"bulk_insert"
"oltp_delete"
"oltp_insert"
"oltp_point_select"
"oltp_read_only"
"oltp_read_write"
"oltp_update_index"
"oltp_update_non_index"
"oltp_write_only"
"select_random_points"
"select_random_ranges"
)
./speedtest-cli --server=16089 > results/speedtest1.log
./speedtest-cli --server=16089 > results/speedtest2.log
./speedtest-cli --server=16089 > results/speedtest3.log
for TEST in "${TESTS[@]}"; do
sysbench --db-driver=mysql --table-size=1000000 --mysql-user=root "/usr/share/sysbench/$TEST.lua" prepare
sysbench --db-driver=mysql --table-size=1000000 --mysql-user=root "/usr/share/sysbench/$TEST.lua" run > "results/sysbench-mysql-$TEST.txt"
sysbench --db-driver=mysql --table-size=1000000 --mysql-user=root "/usr/share/sysbench/$TEST.lua" cleanup
done
redis-benchmark -q -n 100000 --csv > results/redis-benchmark.txt
./speedtest-cli --json --secure --single --server="$SPEEDTEST_SERVER" > results/speedtest1.txt
./speedtest-cli --json --secure --single --server="$SPEEDTEST_SERVER" > results/speedtest2.txt
./speedtest-cli --json --secure --single --server="$SPEEDTEST_SERVER" > results/speedtest3.txt
# Wraps it all up in a nice package
tar -zcvf "results-$PROVIDER.tgz" results