diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2019-08-14 13:05:56 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2019-08-14 13:05:56 +0200 |
| commit | 78167c5d5501e9e41cc78c214842126e922ad027 (patch) | |
| tree | 99cf2555bc234be8b1155e792d7e963ad414087d | |
| parent | 8cb627ae2d4790b3feefd085b28e059fce9c5bad (diff) | |
| download | allocbench-78167c5d5501e9e41cc78c214842126e922ad027.tar.gz allocbench-78167c5d5501e9e41cc78c214842126e922ad027.zip | |
improve mysql benchmark definition
| -rw-r--r-- | src/benchmarks/mysql.py | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/src/benchmarks/mysql.py b/src/benchmarks/mysql.py index 47d884f..ce24292 100644 --- a/src/benchmarks/mysql.py +++ b/src/benchmarks/mysql.py @@ -11,18 +11,19 @@ from src.globalvars import allocators from src.benchmark import Benchmark from src.util import print_status, print_debug, print_info2 -cwd = os.getcwd() +TESTDIR = os.path.join(os.getcwd(), "mysql_test") +MYSQL_USER = "root" +RUN_TIME = 10 +TABLES = 5 -prepare_cmd = ("sysbench oltp_read_only --db-driver=mysql --mysql-user=root " - "--mysql-socket=" + cwd + "/mysql_test/socket --tables=5 " - "--table-size=1000000 prepare").split() +PREPARE_CMD = (f"sysbench oltp_read_only --db-driver=mysql --mysql-user={MYSQL_USER} " + f"--mysql-socket={TESTDIR}/socket --tables={TABLES} --table-size=1000000 prepare") -cmd = ("sysbench oltp_read_only --threads={nthreads} --time=10 --tables=5 " - "--db-driver=mysql --mysql-user=root --mysql-socket=" - + cwd + "/mysql_test/socket run") +CMD = (f"sysbench oltp_read_only --threads={{nthreads}} --time={RUN_TIME} --tables={TABLES} " + f"--db-driver=mysql --mysql-user={MYSQL_USER} --mysql-socket={TESTDIR}/socket run") -server_cmd = ("mysqld --no-defaults -h {0}/mysql_test --socket={0}/mysql_test/socket --port=123456 " - "--max-connections={1} --secure-file-priv=").format(cwd, multiprocessing.cpu_count()) +SERVER_CMD = (f"mysqld --no-defaults -h {TESTDIR} --socket={TESTDIR}/socket --port=123456 " + f"--max-connections={multiprocessing.cpu_count()} --secure-file-priv=") class Benchmark_MYSQL(Benchmark): @@ -31,14 +32,19 @@ class Benchmark_MYSQL(Benchmark): self.descrition = """See sysbench documentation.""" self.args = {"nthreads": Benchmark.scale_threads_for_cpus(1)} - self.cmd = cmd - self.server_cmds = [server_cmd] + self.cmd = CMD + self.server_cmds = [SERVER_CMD] self.measure_cmd = "" self.requirements = ["mysqld", "sysbench"] super().__init__() + self.results["facts"]["runtime [s]"] = RUN_TIME + self.results["facts"]["sysbench"] = subprocess.run(["sysbench", "--version"], + stdout=PIPE, + universal_newlines=True).stdout[:-1] + def prepare(self): super().prepare() @@ -49,13 +55,14 @@ class Benchmark_MYSQL(Benchmark): # Init database self.results["facts"]["mysqld"] = subprocess.run(["mysqld", "--version"], - stdout=PIPE).stdout - if b"MariaDB" in self.results["facts"]["mysqld"]: + stdout=PIPE, + universal_newlines=True).stdout[:-1] + if "MariaDB" in self.results["facts"]["mysqld"]: init_db_cmd = ["mysql_install_db", "--basedir=/usr", - "--datadir="+cwd+"/mysql_test"] + f"--datadir={TESTDIR}"] print_info2("MariaDB detected") else: - init_db_cmd = ["mysqld", "-h", cwd+"/mysql_test", + init_db_cmd = ["mysqld", "-h", f"{TESTDIR}", "--initialize-insecure"] print_info2("Oracle MySQL detected") @@ -70,9 +77,9 @@ class Benchmark_MYSQL(Benchmark): self.start_servers() # Create sbtest TABLE - p = subprocess.run(("mysql -u root -S " + cwd + "/mysql_test/socket").split(" "), - input=b"CREATE DATABASE sbtest;\n", - stdout=PIPE, stderr=PIPE) + p = subprocess.run((f"mysql -u {MYSQL_USER} -S {TESTDIR}/socket").split(), + input=b"CREATE DATABASE sbtest;\n", + stdout=PIPE, stderr=PIPE) if p.returncode != 0: print_debug("Stderr:", p.stderr, file=sys.stderr) @@ -80,7 +87,7 @@ class Benchmark_MYSQL(Benchmark): print_status("Prepare test tables ...") ret = True - p = subprocess.run(prepare_cmd, stdout=PIPE, stderr=PIPE) + p = subprocess.run(PREPARE_CMD.split(), stdout=PIPE, stderr=PIPE) if p.returncode != 0: print_debug("Stdout:", p.stdout, file=sys.stderr) print_debug("Stderr:", p.stderr, file=sys.stderr) |
