diff options
Diffstat (limited to 'contrib/pgbench/README.pgbench')
| -rw-r--r-- | contrib/pgbench/README.pgbench | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/contrib/pgbench/README.pgbench b/contrib/pgbench/README.pgbench new file mode 100644 index 0000000000..093f2b9869 --- /dev/null +++ b/contrib/pgbench/README.pgbench @@ -0,0 +1,149 @@ +pgbench 1.2 README 2000/1/15 Tatsuo Ishii (t-ishii@sra.co.jp) + +o What is pgbench? + + pgbench is a simple program to run a benchmark test sort of + "TPC-B". pgbench is a client application of PostgreSQL and runs + with PostgreSQL only. It performs lots of small and simple + transactions including select/update/insert operations then + calculates number of transactions successfully completed within a + second (transactions per second, tps). Targeting data includes a + table with at least 100k tuples. + + Example outputs from pgbench look like: + + number of clients: 4 + number of transactions per client: 100 + number of processed transactions: 400/400 + tps = 19.875015(including connections establishing) + tps = 20.098827(excluding connections establishing) + + Similar program called "JDBCBench" already exists, but it requires + Java that may not be available on every platform. Moreover some + people concerned about the overhead of Java that might lead + inaccurate results. So I decided to write in pure C, and named + it "pgbench." + +o features of pgbench + + - pgbench is written in C using libpq only. So it is very portable + and easy to install. + + - pgbench can simulate concurrent connections using asynchronous + capability of libpq. No threading is required. + +o How to install pgbench + + (1) Edit the first line in Makefile + + POSTGRESHOME = /usr/local/pgsql + + so that it points to the directory where PostgreSQL installed. + + (2) Run configure + + (3) Run make. You will see an executable file "pgbench" there. + +o How to use pgbench? + + (1) Initialize database by: + + pgbench -i <dbname> + + where <dbname> is the name of database. pgbench uses four tables + accounts, branches, history and tellers. These tables will be + destroyed. Be very carefully if you have tables having same + names. Default test data contains: + + table # of tuples + ------------------------- + branches 1 + tellers 10 + accounts 100000 + history 0 + + You can increase the number of tuples by using -s option. See + below. + + (2) Run the benchmark test + + pgbench <dbname> + + The default configuration is: + + number of clients: 1 + number of transactions per client: 10 + +o options + + pgbench has number of options. + + -h hostname + hostname where the backend is running. If this option + is omitted, pgbench will connect to the localhost via + Unix domain socket. + + -p port + the port number that the backend is accepting. default is + 5432. + + -c number_of_clients + Number of clients simulated. default is 1. + + -t number_of_transactions + Number of transactions each client runs. default is 10. + + -s scaling_factor + this should be used with -i (initialize) option. + number of tuples generated will be multiple of the + scaling factor. For example, -s 100 will imply 10M + (10,000,000) tuples in the accounts table. + default is 1. + + -n + No vacuuming and cleaning the history table prior the + test is performed. + + -v + Do vacuuming before testing. This will take some time. + Without both -n and -v pgbench will vacuum tellers and + branches tables only. + + -S + Perform select only transactions instead of TPC-B. + + -d + debug option. + + +o What is the "transaction" actually performed in pgbench? + + (1) begin; + + (2) update accounts set abalance = abalance + :delta where aid = :aid; + + (3) select abalance from accounts where aid = :aid; + + (4) update tellers set tbalance = tbalance + :delta where tid = :tid; + + (5) update branches set bbalance = bbalance + :delta where bid = :bid; + + (6) insert into history(tid,bid,aid,delta) values(:tid,:bid,:aid,:delta); + + (7) end; + +o License? + +Basically it is same as BSD license. See pgbench.c for more details. + +o History + +2000/1/15 pgbench-1.2 contributed to PostgreSQL + * Add -v option + +1999/09/29 pgbench-1.1 released + * Apply cygwin patches contributed by Yutaka Tanida + * More robust when backends die + * Add -S option (select only) + +1999/09/04 pgbench-1.0 released
\ No newline at end of file |
