Skip to content

arssher/pgtpch

Repository files navigation

Simple scripts to run TPC-H benchmarks on PostgreSQL.
Largely based on
https://github.com/2ndQuadrant/pg-tpch

How to use it:
In short,
   git clone https://github.com/arssher/pgtpch.git
   cd pgtpch
   cp pgtpch.conf.example pgtpch.conf # configure setup here
   cp postgresql.conf.example postgresql.conf # set Postgres options, if you want
   cp runconf.json.example runconf.json  # congifure runs here
   ./prepare.sh
   ./run.py

Scripts use the following tee commands, it is recommended to setup sudoers to
run them without password prompt:
  * echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
  * echo 3 | sudo tee /proc/sys/vm/drop_caches
First disables transparent huge pages, second drops kernel fs caches.
And even more commands, if you use perf:
  * echo 0 | sudo tee /proc/sys/kernel/kptr_restrict
  * sudo perf record
  * sudo kill -2 'perf record pid'
  * sudo perf script


Each script has "./script -h" help

prepare.sh creates database cluster with database containing TPC-H data and
generates the queries folder inside cluster directory.

gen_queries.h generates the 'queries' dir with TPC-H queries in the current
directory.

run.sh runs the queries. It is kind of deprecated, run.py should be used instead.

run.py tests multiple configurations. See its help and pgtpch.conf.example
for details. Usually I run it like

nohup ./run.py > logs/`date "+%Y-%m-%d-%H-%M"`.out &

Tested only on GNU/Linux, Ubuntu 14.04 and OpenSuse 42.2