TPC:Transaction processing Performance Council 事务处理性能委员会
TPC-B: measures throughput in terms of how many transactions per second a system can perform 测试一秒可以处理的事务个数
pgbench: 使用C语言编写
pgbench是基于tpc-b模型的postgresql测试工具。它属于开源软件,主要为数据管理人员提供性能测试使用。
pgbench 是对 PostgreSQL 进行压力测试的一款简单程序, SQL 命令可以在一个连接中顺序地执行,通常会开多个数据库 Session, 并且在测试最后形成测试报告,得出每秒平均事务数,pgbench可以测试 select,update,insert,delete 命令,用户可以编写自己的脚本进行测试。
http://blog.csdn.net/enzesheng/article/details/42720691
https://my.oschina.net/Kenyon/blog/66198
http://blog.csdn.net/sunziyue/article/details/50997867
http://francs3.blog.163.com/blog/static/405767272011720103758178/
Schema | Name | Type | Owner | Size | Description
----------+------------------+-------+--------+------- +-------------
public | pgbench_accounts | table | luwang | 13 MB |
public | pgbench_branches | table | luwang | 40 kB |
public | pgbench_history | table | luwang | 0 bytes|
public | pgbench_tellers | table | luwang | 40 kB |
Schema | Name | Type | Owner | Table | Size | Description
----------+-----------------------+-------+--------+------------------+---------+-------------
public | pgbench_accounts_pkey | index | luwang | pgbench_accounts | 2208 kB |
public | pgbench_branches_pkey | index | luwang | pgbench_branches | 16 kB |
public | pgbench_tellers_pkey | index | luwang | pgbench_tellers | 16 kB |
安装:
在postgresql安装源包中,进入源码的contrib/pgbench目录,通过make all;make install单独安装。
先创建一个数据库,名字为:pgbench
createdb pgbench
生成10万数据的测试库:
pgbench -i -s 1 pgbench
按照默认的比例因子1,这些表按如下行数初始化:
表名 行数
---------------------------------
pgbench_branches 1
pgbench_tellers 10
pgbench_accounts 100000
pgbench_history 0
可以通过指定-s(比例因子)参数来增加初始化时各表的行数。-F(填充因子)参数此时也可以同时使用。
测试命令:
pgbench -c 10 -t 100 pgbench
-c clients 模拟的客户数,也就是并发数据库会话数目。缺省是 1。
-t transactions 每个客户端跑的事务数目。缺省是 10。
pgbehch的使用帮助:
pgbehch --help
最重要的选项是-c(客户端数量),-t(事务数量),-T(时间限制)和-f(定制脚本)
默认的事务脚本在每个事务中执行如下七条语句:
\setnbranches :scale
\set ntellers 10 * :scale
\set naccounts 100000 * :scale
\setrandom aid 1 :naccounts
\setrandom bid 1 :nbranches
\setrandom tid 1 :ntellers
\setrandom delta -5000 5000
BEGIN;
UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid =:aid;
SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid =:tid;
UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid =:bid;
INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid,:aid, :delta, CURRENT_TIMESTAMP);
END;
如果你指定了-N,第4步和第5步不会执行。如果指定了-S,则只有select语句会执行。
pgbench-tools:对pgbench进行了完善,虽然他也是调用pgbench。
https://yq.aliyun.com/articles/197
pg_nosql_benchmark: EnterpriseDB出品的测试方案,支持MongoDB 2.6 (BSON) and Postgres 9.4 (JSONB)
https://github.com/EnterpriseDB/pg_nosql_benchmark
SQL-Bench: 用例使用perl语言编写。支持MySQL, PostgreSQL, mSQL, Solid。包含Crash-me命令和Access, Adabas,ATIS, Wisconsin test。
https://dev.mysql.com/doc/internals/en/sql-bench-directory.html
http://www.perlmonks.org/?node_id=130699
http://blog.chinaunix.net/uid-16909016-id-120157.html
/u01/mysql/sql-bench/run-all-tests –server=mysql –user=root –password=123456 –log –fast
/u01/mysql/sql-bench/test-select –server=mysql –user=root –password=123456
执行mysql测试sql-bench/test-select,报错Can't locate DBI.pm in @INC
perl -MCPAN -e 'install DBI'
perl -MCPAN -e 'install DBD::mysql'
perl -MCPAN -e 'install DBD::Pg'
# yum -y install perl-DBI perl-DBD-MySQL
解决方法是 安装一个DBD-MYSQL包即可,下载地址为:http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-2.9005.tar.gz
安装方法:
# wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-2.9005.tar.gz
# tar zxvf DBD-mysql-2.9005.tar.gz
# cd DBD-mysql-2.9005
# perl Makefile.PL --testdb=test --testuser=root --testpassword=”123456″
# make; make test; make install
super smack: 是一个强大的广受赞誉的压力测试工具,支持MySQL和PostgreSQL数据库。下载地址为:
http://vegan.net/tony/supersmack/super-smack-1.3.tar.gz
mydbtest:是一款轻量级的mysql数据库压测工具,由OneProxy创始人楼方鑫编写,mydbtest相较于sysbench压测工具,功能单一,但是安装部署操作简单,只需要简单的配置,就可以进行压测。
http://blog.csdn.net/d6619309/article/details/67639646
http://blog.itpub.net/22664653/viewspace-2073341/