大佬教程收集整理的这篇文章主要介绍了PostgreSQL数据库压力测试工具pgbench简单应用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
[POSTGRes@localhost ~]$ cd POSTGResql-9.1.2/contrib/pgbench/ [POSTGRes@localhost pgbench]$ ll @R_39_10586@l 164 -rw-r--r--. 1 POSTGRes POSTGRes 538 Dec 1 2011 Makefile -rwxrwxr-x. 1 POSTGRes POSTGRes 50203 Apr 26 23:50 pgbench -rw-r--r--. 1 POSTGRes POSTGRes 61154 Dec 1 2011 pgbench.c -rw-rw-r--. 1 POSTGRes POSTGRes 47920 Apr 26 23:50 pgbench.o [POSTGRes@localhost pgbench]$make all [POSTGRes@localhost pgbench]$make install安装完毕以后可以在bin文件夹下看到新生成的pgbench文件
[POSTGRes@localhost bin]$ ll $PGHOME/bin pgbench -rwxr-xr-x. 1 POSTGRes POSTGRes 50203 Jul 8 20:28 pgbench2.参数介绍
[POSTGRes@localhost bin]$ pgbench --Help pgbench is a benchmarking tool for Postgresql. Usage: pgbench [OPTIONS]... [DBname] Initialization options: -i invokes initialization mode -F NUM fill factor -s NUM scaling factor Benchmarking options: -c NUM number of concurrent database clIEnts (default: 1) -C establish new connection for each transaction -D VARname=VALUE define variable for use by custom script -f filename read transaction script from filename -j NUM number of threads (default: 1) -l write transaction times to log file -M {simple|extended|prepareD} protocol for submitTing querIEs to server (default: simplE) -n do not run VACUUM before tests -N do not update tables "pgbench_tellers" and "pgbench_branches" -r report average latency per command -s NUM report this scale factor in output -S perform SELECT-only transactions -t NUM number of transactions each clIEnt runs (default: 10) -T NUM duration of benchmark test in seconds -v VACUUM all four standard tables before tests Common options: -d print deBUGging output -h HOSTname database server host or socket directory -p PORT database server port number -U USERname connect as specifIEd database user --Help show this Help,then exit --version output version information,then exit Report BUGs to .3.初始化测试数据
[POSTGRes@localhost ~]$ pgbench -i pgbench creaTing tables... 10000 tuples done. @R_489_9285@ tuples done. 30000 tuples done. 40000 tuples done. 50000 tuples done. 60000 tuples done. 70000 tuples done. 80000 tuples done. 90000 tuples done. 100000 tuples done. set priMary key... NOTICE: alter table / ADD PRIMary KEY will create implicit index "pgbench_branches_pkey" for table "pgbench_branches" NOTICE: alter table / ADD PRIMary KEY will create implicit index "pgbench_tellers_pkey" for table "pgbench_tellers" NOTICE: alter table / ADD PRIMary KEY will create implicit index "pgbench_accounts_pkey" for table "pgbench_accounts" VACUUM...done. [POSTGRes@localhost ~]$ psql -d pgbench psql (9.1.2) Type "Help" for Help. pgbench=# SELEct count(1) from pgbench_accounts; count -------- 100000 (1 row) pgbench=# SELEct count(1) from pgbench_branches; count ------- 1 (1 row) pgbench=# SELEct count(1) from pgbench_history; count ------- 0 (1 row) pgbench=# SELEct count(1) from pgbench_tellers; count ------- 10 (1 row) pgbench=# \d+ pgbench_accounts table "public.pgbench_accounts" column | Type | ModifIErs | Storage | Description ----------+---------------+-----------+----------+------------- aID | Integer | not null | plain | bID | Integer | | plain | abalance | Integer | | plain | filler | character(84) | | extended | Indexes: "pgbench_accounts_pkey" PRIMary KEY,btree (aID) Has OIDs: no Options: fillfactor=100 pgbench=# \d+ pgbench_branches table "public.pgbench_branches" column | Type | ModifIErs | Storage | Description ----------+---------------+-----------+----------+------------- bID | Integer | not null | plain | bbalance | Integer | | plain | filler | character(88) | | extended | Indexes: "pgbench_branches_pkey" PRIMary KEY,btree (bID) Has OIDs: no Options: fillfactor=100 pgbench=# \d+ pgbench_history table "public.pgbench_history" column | Type | ModifIErs | Storage | Description --------+-----------------------------+-----------+----------+------------- tID | Integer | | plain | bID | Integer | | plain | aID | Integer | | plain | delta | Integer | | plain | mtime | timestamp without time zone | | plain | filler | character(22) | | extended | Has OIDs: no pgbench=# \d+ pgbench_tellers table "public.pgbench_tellers" column | Type | ModifIErs | Storage | Description ----------+---------------+-----------+----------+------------- tID | Integer | not null | plain | bID | Integer | | plain | tbalance | Integer | | plain | filler | character(84) | | extended | Indexes: "pgbench_tellers_pkey" PRIMary KEY,btree (tID) Has OIDs: no Options: fillfactor=100说明:
4.测试过程
4.1 1个session
[POSTGRes@localhost ~]$ nohup pgbench -c 1 -T 20 -r pgbench > file.out 2>&1 [POSTGRes@localhost ~]$ more file.out nohup: ignoring input starTing VACUUM...end. transaction type: TPC-B (sort of) scaling factor: 1 query mode: simple number of clIEnts: 1 number of threads: 1 duration: 20 s number of transactions actually processed: 12496 tps = 624.747958 (including connections establishing) tps = 625.375564 (excluding connections establishing) statement latencIEs in milliseconds: 0.005299 \set nbranches 1 * :scale 0.000619 \set ntellers 10 * :scale 0.000492 \set naccounts 100000 * :scale 0.000700 \setrandom aID 1 :naccounts 0.000400 \setrandom bID 1 :nbranches 0.000453 \setrandom tID 1 :ntellers 0.000430 \setrandom delta -5000 5000 0.050707 BEGIN; 0.200909 updatE pgbench_accounts SET abalance = abalance + :delta WHERE aID = :aID; 0.098718 SELECT abalance FROM pgbench_accounts WHERE aID = :aID; 0.111621 updatE pgbench_tellers SET tbalance = tbalance + :delta WHERE tID = :tID; 0.107297 updatE pgbench_branches SET bbalance = bbalance + :delta WHERE bID = :bID; 0.095156 INSERT INTO pgbench_history (tID,bID,aID,delta,mtimE) VALUES (:tID,:bID,:aID,:delta,CURRENT_TIMESTAMP); 0.919101 END;4.2 30个session
[POSTGRes@localhost ~]$nohup pgbench -c 30 -T 20 -r pgbench > file.out 2>&1 [POSTGRes@localhost ~]$ more file.out nohup: ignoring input starTing VACUUM...end. transaction type: TPC-B (sort of) scaling factor: 1 query mode: simple number of clIEnts: 30 number of threads: 1 duration: 20 s number of transactions actually processed: 8056 tps = 399.847446 (including connections establishing) tps = 404.089024 (excluding connections establishing) statement latencIEs in milliseconds: 0.004195 \set nbranches 1 * :scale 0.000685 \set ntellers 10 * :scale 0.000887 \set naccounts 100000 * :scale 0.000805 \setrandom aID 1 :naccounts 0.000656 \setrandom bID 1 :nbranches 0.000523 \setrandom tID 1 :ntellers 0.000499 \setrandom delta -5000 5000 0.515565 BEGIN; 0.865217 updatE pgbench_accounts SET abalance = abalance + :delta WHERE aID = :aID; 0.307207 SELECT abalance FROM pgbench_accounts WHERE aID = :aID; 50.543371 updatE pgbench_tellers SET tbalance = tbalance + :delta WHERE tID = :tID; 19.210089 updatE pgbench_branches SET bbalance = bbalance + :delta WHERE bID = :bID; 0.384190 INSERT INTO pgbench_history (tID,CURRENT_TIMESTAMP); 2.116383 END;4.3 50个session
[POSTGRes@localhost ~]$nohup pgbench -c 50 -T 20 -r pgbench > file.out 2>&1 [POSTGRes@localhost ~]$ more file.out nohup: ignoring input starTing VACUUM...end. transaction type: TPC-B (sort of) scaling factor: 1 query mode: simple number of clIEnts: 50 number of threads: 1 duration: 20 s number of transactions actually processed: 7504 tps = 370.510431 (including connections establishing) tps = 377.964565 (excluding connections establishing) statement latencIEs in milliseconds: 0.004291 \set nbranches 1 * :scale 0.000769 \set ntellers 10 * :scale 0.000955 \set naccounts 100000 * :scale 0.000865 \setrandom aID 1 :naccounts 0.000513 \setrandom bID 1 :nbranches 0.000580 \setrandom tID 1 :ntellers 0.000522 \setrandom delta -5000 5000 0.604671 BEGIN; 1.480723 updatE pgbench_accounts SET abalance = abalance + :delta WHERE aID = :aID; 0.401148 SELECT abalance FROM pgbench_accounts WHERE aID = :aID; 104.713566 updatE pgbench_tellers SET tbalance = tbalance + :delta WHERE tID = :tID; 21.562787 updatE pgbench_branches SET bbalance = bbalance + :delta WHERE bID = :bID; 0.412209 INSERT INTO pgbench_history (tID,CURRENT_TIMESTAMP); 2.243497 END;4.4 100个session
[POSTGRes@localhost ~]$ nohup pgbench -c 100 -T 20 -r pgbench> file.out 2>&1 [POSTGRes@localhost ~]$ more file.out nohup: ignoring input starTing VACUUM...end. transaction type: TPC-B (sort of) scaling factor: 1 query mode: simple number of clIEnts: 100 number of threads: 1 duration: 20 s number of transactions actually processed: 6032 tps = 292.556692 (including connections establishing) tps = 305.595090 (excluding connections establishing) statement latencIEs in milliseconds: 0.004508 \set nbranches 1 * :scale 0.000787 \set ntellers 10 * :scale 0.000879 \set naccounts 100000 * :scale 0.001620 \setrandom aID 1 :naccounts 0.000485 \setrandom bID 1 :nbranches 0.000561 \setrandom tID 1 :ntellers 0.000656 \setrandom delta -5000 5000 3.660809 BEGIN; 4.198062 updatE pgbench_accounts SET abalance = abalance + :delta WHERE aID = :aID; 1.727076 SELECT abalance FROM pgbench_accounts WHERE aID = :aID; 281.955832 updatE pgbench_tellers SET tbalance = tbalance + :delta WHERE tID = :tID; 27.054125 updatE pgbench_branches SET bbalance = bbalance + :delta WHERE bID = :bID; 0.524155 INSERT INTO pgbench_history (tID,CURRENT_TIMESTAMP); 2.710619 END;5.说明
以上是大佬教程为你收集整理的PostgreSQL数据库压力测试工具pgbench简单应用全部内容,希望文章能够帮你解决PostgreSQL数据库压力测试工具pgbench简单应用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。