How to use pgbench
pgbench is a benchmarking tool bundled with PostgreSQL, designed to simulate a TPC-B-like workload, not a full TPC-C
1. Initialize the Test Database
This sets up the schema and populates data.
1 | pgbench -i -s 10 mydb |
- -i: Initialize the database.
- -s 10: Scale factor. Each scale unit ~100,000 rows in the pgbench_accounts table.
- mydb: The database to test.
2. Run a Simple Benchmark Test
1 | pgbench -c 10 -j 2 -T 60 mydb |
- -c 10: 10 concurrent clients.
- -j 2: 2 threads.
- -T 60: Run for 60 seconds.
- mydb: Target database.
It will output something like:
1 | [postgres@iZ2ze4mflpfiplp0evcw8gZ root]$ pgbench -c 10 -j 2 -T 60 mydb |
3. Run Custom SQL Scripts
You can benchmark with custom SQL transactions:
1 | pgbench -f myscript.sql -c 10 -T 60 mydb |
Where myscript.sql contains something like:
1 | BEGIN; |
Use :variable for substitution. We can define variables using -D:
1 | pgbench -f myscript.sql -D aid=12345 -D delta=50 -c 10 -T 60 mydb |