單算子benchmark測試工具pgbench, SQL-bench, mydbtest

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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章