fzgregor / docker-oltpbench

Dockerfile and scripts to auto generate configs and run oltpbench against RDBMS and (a couple) NoSQL systems

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

oltpbench

Dockerfile and scripts to auto generate configs and run oltpbench against several types of RDBMS.

Tools

This image is designed to streamline the configuration and running of the oltpbench benchmarking tool. To this end it comes with a some convenience scripts:

bench-confgen.sh -- generates configuration files for oltpbench using the templates under the config-templates/ folder.

loadstarter.sh -- for (more) easily running the image on docker directly, i.e. without a container orchestration tool like Rancher or Kubernetes.

ojdbc-get.sh -- sets up Oracle's maven repository and downloads their jdbc drivers (Oracle Maven login required).

Supported Environment Variables

DBFQDN -- fully qualified domain name of the database under test (DUT).

DBUSER -- username for DUT.

DBPASS -- password for above user.

DBTYPE -- type of database being tested (required for config generation), currently supported options are:

 mysql
 mariadb (uses the mariadb jdbc driver)
 postgres
 db2
 oracle
 sqlserver
 jtds_sqlserver (uses the jtds driver)
 

DBNAME -- name of database to connect to.

DBPORT -- port the DUT is listening on.

RATE -- rate limit for the benchmark. (defaults to unlimited)

CLIENTS -- the number of clients you would like to simulate connecting to the DUT. (defaults to 10)

SCALE -- size of the dataset generated for the benchmark being run, what this means varies per benchmark (defaults to 100):

tpcc -- number of warehouses in TPCC
tpch
tatp -- number of subscribers
wikipedia -- the number of wikipages *1000
resourcestresser -- scales by *100 the number of employees
twitter -- scales by *500 the number of users
epinions -- scales by *2000 the number of users
ycsb --  *1000 the number of rows in the USERTABLE
jpab -- Number of Initial Objects
seats -- scales by *1000 the number of customers
auctionmark -- scales by *1000 the number of customers
chbenchmark
voter
linkbench -- scale is ignored in LinkBench for now, to be replaced by max_id
sibench
noop
smallbank
hyadapt

ISOLATION -- the transaction isolation level to be used for the benchmark, one of (defaults to TRANSACTION_READ_COMMITED):

TRANSACTION_REPEATABLE_READ
TRANSACTION_READ_COMMITTED
TRANSACTION_SERIALIZABLE

BENCH -- which benchmark to run against the DUT, currently supported options:

tpcc
tpch
chbenchmark
auctionmark
epinions
jpab
resourcestresser
seats
tatp
twitter
wiki
ycsb
voter
linkbench
sibench

SECONDS -- how long the benchmark should run, defaults to one day

All *BOOL vars only accept true or false

CREATEBOOL -- toggle database creation

CLEARBOOL -- toggle clearing the database

EXECBOOL -- toggle benchmark execution, in case you just want to populate the database and examine the dataset w/o running the benchmark.

LOADBOOL -- toggle database loading phase, can be useful if you want to reuse a previously populated database.

The following vars are only used if DBTYPE is set to 'oracle', in which case they are required

MVN_PASS -- used to generate encrypted maven master password.

ORACLEMVN_USER -- username used to login to oracle maven repo, you may have to register your Oracle login for this, more info

ORACLEMVN_PASS -- password for the above username, used to generate a maven encrypted password that is actually written to the settings.xml file.

ACCEPT_OTN_BOOL -- indicates that you accept the Oracle Technology Network License Agreement. Only accepts true or false.

About

Dockerfile and scripts to auto generate configs and run oltpbench against RDBMS and (a couple) NoSQL systems

License:Apache License 2.0


Languages

Language:Shell 94.7%Language:Dockerfile 5.3%