tpcc-mysql 试用

percona 出的一个mysql压力测试工具,至于tpcc的话,是一个衡量事务处理能力的一个值。具体可以看老外对他的定义。

http://www.tpc.org/tpcc/results/tpcc_perf_results.asp  

现在来说tpcc-mysql 

安装:

centos/red hat平台是 

yum install bzr  

bzr branch lp:~percona-dev/perconatools/tpcc-mysql

cd src

make

当然你要安装mysql-devel包。

我测试5.1的版本。参数主要是

key_buffer_size = 50M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 1M
myisam_sort_buffer_size = 2M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8
 innodb_buffer_pool_size = 300M
 innodb_additional_mem_pool_size = 20M
 innodb_log_buffer_size = 8M
 innodb_flush_log_at_trx_commit = 1
 innodb_lock_wait_timeout = 50

innodb_buffer_pool_size 是300M的

创建测试的 数据库 

mysql -e 'create database tpcc1000'

mysql tpcc1000 <create_table.sql

mysql tpcc1000 <add_fkey_idx.sql

./tpcc_load localhost tpcc1000 root "" 5 

这里5的意思是数据量的大小,打开innodb per file ,可以看5,生成的数据量大概在500M 。10的话大概是1G

./tpcc_start -hlocalhost -dtpcc1000 -uroot -w5 -c16 -r10 -l200

 

测试200s,预热10s,结果是300tpmC

硬件方面是,pc 机,amd 双核 Athlon(tm) X2 240 2800Mhz ,内存1.8G

 

<Constraint Check> (all must be [OK])
 [transaction percentage]
        Payment: 43.45% (>=43.0%) [OK]
   Order-Status: 4.38% (>= 4.0%) [OK]
       Delivery: 4.31% (>= 4.0%) [OK]
    Stock-Level: 4.38% (>= 4.0%) [OK]
 [response time (at least 90% passed)]
      New-Order: 100.00%  [OK]
        Payment: 100.00%  [OK]
   Order-Status: 100.00%  [OK]
       Delivery: 100.00%  [OK]
    Stock-Level: 100.00%  [OK]

<TpmC>
                 372.600 TpmC

最终结果是一个tpmc的值。

提高innodb_buffer_pool_size 到600M 发现测试结果没有提高

这里将innodb_flush_log_at_trx_commit设成2 ,结果大大出乎意料

<Constraint Check> (all must be [OK])
 [transaction percentage]
        Payment: 43.48% (>=43.0%) [OK]
   Order-Status: 4.35% (>= 4.0%) [OK]
       Delivery: 4.35% (>= 4.0%) [OK]
    Stock-Level: 4.35% (>= 4.0%) [OK]
 [response time (at least 90% passed)]
      New-Order: 100.00%  [OK]
        Payment: 100.00%  [OK]
   Order-Status: 100.00%  [OK]
       Delivery: 100.00%  [OK]
    Stock-Level: 100.00%  [OK]

<TpmC>
                 7590.600 TpmC

达到惊人的7500,是原来的20倍。

最后来张对比图,

图的生成方法用了下面链接里的方法

http://www.mysqlperformanceblog.com/2013/07/01/tpcc-mysql-simple-usage-steps-and-how-to-build-graphs-with-gnuplot/

关于 innodb_flush_log_at_trx_commit 也可 参看这篇文章  http://swachian.iteye.com/blog/193788

最近比较火大,一起维护的服务器,其他同事单方面的更改了ssh 连接限制,我完全不知晓,还在奇怪为什么搞了半天都登不上服务器,原来他们在交换机上做了限制,公网ip无法登入了。我气死,我们一旦有什么没报,他们要问为什么不向他们汇报,但是自己动了关键性的东西,为什么不告诉我们一声? 登录都不能登录了还叫我维护个毛啊。己所不欲勿施于人。

被人不理解,被人误解。我要把这些压力转化为动力!

2013年7月13日 11:57:43

我回头又用win7 的virtualbox 安装centos6.3 测了一下自带的5.1的mysql 。

物理机是i3 双核,4G ,sata 分了2g给虚拟机

主要几个参数

innodb_log_file_size = 50M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50

innodb_buffer_pool_size = 500M

<TpmC>
6541.800 TpmC

 

tpmc 也能达到6500样子,如果你测出来只是3,4百,那肯定是小了,木有发挥出innodb的优势出来。那还不如用myisam 呢。

posted @ 2013-07-13 00:45  过去的我  阅读(617)  评论(0编辑  收藏  举报