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/