From a06a8c4bead039a0782ef65c803efbb88d3afc9d Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Sun, 27 May 2018 19:08:58 -0500 Subject: [PATCH 1/9] Working on some stuff to make it easier to do my posts --- run.sh | 2 +- start.sh | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) mode change 100644 => 100755 run.sh create mode 100755 start.sh diff --git a/run.sh b/run.sh old mode 100644 new mode 100755 index 3c1a1b5..820be65 --- a/run.sh +++ b/run.sh @@ -11,7 +11,7 @@ swapoff -a apt-get update apt-get upgrade -y -apt-get install sysbench apache2 mailutils mysql-server python -y +apt-get install sysbench nginx mysql-server python -y wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py chmod +x speedtest-cli diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..d897ff3 --- /dev/null +++ b/start.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +ssh-copy-id "root@$2" + +rsync -avz run.sh "root@$2:~/" + +ssh "root@$2" "./run.sh $1" + +rsync -avz "root@$2:~/results-$1.tgz" ./ + +ab -kc 1000 -n 10000 "http://$2/" > "./ab-$1.log" From a8c14ad4b4be757b355fd17d0f20485c9d706894 Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Sun, 19 Aug 2018 11:51:09 -0500 Subject: [PATCH 2/9] fix: mysql benchmarks working again --- run.sh | 6 +++--- start.sh | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/run.sh b/run.sh index 820be65..487aff6 100755 --- a/run.sh +++ b/run.sh @@ -30,9 +30,9 @@ sysbench --test=fileio --file-test-mode=rndrw run > results/fileio.log sysbench --test=fileio cleanup 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 +sysbench --table-size=1000000 --mysql-user=root /usr/share/sysbench/oltp_read_only.lua prepare +sysbench --table-size=1000000 --mysql-user=root /usr/share/sysbench/oltp_read_only.lua run > results/mysql.log +sysbench --table-size=1000000 --mysql-user=root /usr/share/sysbench/oltp_read_only.lua cleanup ./speedtest-cli --server=16089 > results/speedtest1.log ./speedtest-cli --server=16089 > results/speedtest2.log diff --git a/start.sh b/start.sh index d897ff3..d593eda 100755 --- a/start.sh +++ b/start.sh @@ -8,4 +8,5 @@ ssh "root@$2" "./run.sh $1" rsync -avz "root@$2:~/results-$1.tgz" ./ -ab -kc 1000 -n 10000 "http://$2/" > "./ab-$1.log" +# ab -kc 1000 -n 10000 "http://$2/" > "./ab-$1.log" +ab -kc 500 -n 10000 "http://$2/" > "./ab-$1.log" From af201028b4933b7c5b82b256e3aca6033e3ae2e0 Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Sun, 19 Aug 2018 11:58:06 -0500 Subject: [PATCH 3/9] fix: more tweaks to oltp commands --- run.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/run.sh b/run.sh index 487aff6..567636d 100755 --- a/run.sh +++ b/run.sh @@ -30,9 +30,9 @@ sysbench --test=fileio --file-test-mode=rndrw run > results/fileio.log sysbench --test=fileio cleanup mysql -uroot -e "CREATE DATABASE sbtest;" -sysbench --table-size=1000000 --mysql-user=root /usr/share/sysbench/oltp_read_only.lua prepare -sysbench --table-size=1000000 --mysql-user=root /usr/share/sysbench/oltp_read_only.lua run > results/mysql.log -sysbench --table-size=1000000 --mysql-user=root /usr/share/sysbench/oltp_read_only.lua cleanup +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 ./speedtest-cli --server=16089 > results/speedtest1.log ./speedtest-cli --server=16089 > results/speedtest2.log From ed583c464acac45d066a7b75dff09407a23b5b5e Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Sun, 14 Oct 2018 11:17:14 -0500 Subject: [PATCH 4/9] feat: conditional based on sysbench version --- run.sh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/run.sh b/run.sh index 567636d..547672c 100755 --- a/run.sh +++ b/run.sh @@ -13,6 +13,8 @@ apt-get update apt-get upgrade -y apt-get install sysbench nginx mysql-server python -y +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 @@ -29,10 +31,19 @@ sysbench --test=fileio prepare sysbench --test=fileio --file-test-mode=rndrw run > results/fileio.log sysbench --test=fileio cleanup -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 +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 ./speedtest-cli --server=16089 > results/speedtest1.log ./speedtest-cli --server=16089 > results/speedtest2.log From 74d5351ed5a504e4340b84cf0a8cec997f5665c6 Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Sun, 14 Oct 2018 11:30:18 -0500 Subject: [PATCH 5/9] chore: adjust whitespace Adjusted the indention and killed the kick off script that I had added for myself (moved to another repo) --- run.sh | 4 ++-- start.sh | 12 ------------ 2 files changed, 2 insertions(+), 14 deletions(-) delete mode 100755 start.sh diff --git a/run.sh b/run.sh index 547672c..7d14a2c 100755 --- a/run.sh +++ b/run.sh @@ -1,8 +1,8 @@ #!/bin/bash if [ $# -eq 0 ]; then - echo 'Missing argument, provider name' - exit 1 + echo 'Missing argument, provider name' + exit 1 fi; PROVIDER=$1 diff --git a/start.sh b/start.sh deleted file mode 100755 index d593eda..0000000 --- a/start.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -ssh-copy-id "root@$2" - -rsync -avz run.sh "root@$2:~/" - -ssh "root@$2" "./run.sh $1" - -rsync -avz "root@$2:~/results-$1.tgz" ./ - -# ab -kc 1000 -n 10000 "http://$2/" > "./ab-$1.log" -ab -kc 500 -n 10000 "http://$2/" > "./ab-$1.log" From 33d35cbe10e99f3eeea547246b8eba0f83f4b815 Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Sun, 14 Oct 2018 11:40:11 -0500 Subject: [PATCH 6/9] fix: add non-interactive flag Fixes the issue where the install for MySQL gets locked up because it's expecting input on the password. Benchmarks are using empty passwords so this is fine --- run.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/run.sh b/run.sh index 7d14a2c..5e7cd95 100755 --- a/run.sh +++ b/run.sh @@ -1,5 +1,7 @@ #!/bin/bash +export DEBIAN_FRONTEND=noninteractive + if [ $# -eq 0 ]; then echo 'Missing argument, provider name' exit 1 From 9122bbd80925fb89e906fd327a48ed61020f70fe Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Sun, 14 Oct 2018 12:12:44 -0500 Subject: [PATCH 7/9] fix: comment out `ab` test Running `ab` on the server connecting to itself was never a good metric. Command broke when switching from Apache to Nginx so there's no real need for it --- run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.sh b/run.sh index 5e7cd95..5ed1ea6 100755 --- a/run.sh +++ b/run.sh @@ -51,6 +51,6 @@ fi ./speedtest-cli --server=16089 > results/speedtest2.log ./speedtest-cli --server=16089 > results/speedtest3.log -ab -kc 1000 -n 10000 http://127.0.0.1/ > results/ab.log +# ab -kc 1000 -n 10000 http://127.0.0.1/ > results/ab.log tar -zcvf "results-$PROVIDER.tgz" results From 7a8c5123a3deda4916c7bf108930438306b265b2 Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Sun, 14 Oct 2018 12:13:32 -0500 Subject: [PATCH 8/9] chore: drop `ab` line entirely As I wrote out that last commit message I realized there's absolutely no reason to keep that around --- run.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/run.sh b/run.sh index 5ed1ea6..95dc2d8 100755 --- a/run.sh +++ b/run.sh @@ -51,6 +51,4 @@ fi ./speedtest-cli --server=16089 > results/speedtest2.log ./speedtest-cli --server=16089 > results/speedtest3.log -# ab -kc 1000 -n 10000 http://127.0.0.1/ > results/ab.log - tar -zcvf "results-$PROVIDER.tgz" results From 42501e1d5f5ae08da507229f31a899c70cdb1347 Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Mon, 29 Oct 2018 18:30:16 -0500 Subject: [PATCH 9/9] chore: improve code comments --- run.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/run.sh b/run.sh index 95dc2d8..fd69a45 100755 --- a/run.sh +++ b/run.sh @@ -1,5 +1,6 @@ #!/bin/bash +# Skip prompts so we can run unattended export DEBIAN_FRONTEND=noninteractive if [ $# -eq 0 ]; then @@ -15,6 +16,7 @@ apt-get update apt-get upgrade -y apt-get install sysbench nginx mysql-server python -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 @@ -51,4 +53,5 @@ fi ./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