percona 出的一个mysql压力测试工具,至于tpcc的话,是一个衡量事务处理能力的一个值。具体可以看老外对他的定义。
现在来说tpcc-mysql
安装:
centos/red hat平台是
yum install bzr
bzr branchlp:~percona-dev/perconatools/tpcc-mysql
cd src
make
当然你要安装mysql-devel包。
我测试5.1的版本。参数主要是
key_buffer_size =50M
max_allowed_packet=1M
table_open_cache= 256sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=1M
myisam_sort_buffer_size=2M
thread_cache_size= 8query_cache_size=16M
thread_concurrency= 8innodb_buffer_pool_size=300M
innodb_additional_mem_pool_size=20M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit= 1innodb_lock_wait_timeout= 50
innodb_buffer_pool_size 是300M的
创建测试的 数据库
mysql -e 'create database tpcc1000'
mysql tpcc1000
mysql tpcc1000
./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
(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]372.600 TpmC
最终结果是一个tpmc的值。
提高innodb_buffer_pool_size 到600M 发现测试结果没有提高
这里将innodb_flush_log_at_trx_commit设成2 ,结果大大出乎意料
(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]7590.600 TpmC
达到惊人的7500,是原来的20倍。
最后来张对比图,
图的生成方法用了下面链接里的方法
关于 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
6541.800 TpmC
tpmc 也能达到6500样子,如果你测出来只是3,4百,那肯定是小了,木有发挥出innodb的优势出来。那还不如用myisam 呢。