单算子benchmark测试工具pgbench, SQL-bench, mydbtest

来源:互联网 发布:js 点击显示modal 编辑:程序博客网 时间:2024/06/05 18:55

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_benchmarkEnterpriseDB出品的测试方案,支持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/