作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注:译者和出处,并且不能用于商业用途,违者必究.
压力测试的目的:
通过压力测试了解一下不同发行版本的性能区别。
MySQL不的版本测试,MySQL同样的配置
具体版本如下:
MySQL-5.1.42企业版+innodb-plugin
MySQL-5.1.42企业版+默认的innodb
MySQL-5.1.43开源版+ innodb-plugin
MySQL-5.1.43 Percona
操作系统:
Redhat Enterprise 5.4
硬件: Dell R710,RAM:48G,硬盘:6块SAS做Radid10
压力设置
创建一个1kw的Innodb表,使用16个并发去进行读取写入更新事务方面的操作.
测试工具:
Sysbench
测试方法:
创建数据:
time sysbench --mysql-user=root --mysql-host=localhost --test=oltp --oltp-test-mode=complex --mysql-table-engine=innodb --oltp-table-size=10000000 --mysql-db=test --oltp-table-name=innodb_1kw --num-threads=16 --max-requests=500000 preware
测试:
time sysbench --mysql-user=root --mysql-host=localhost --test=oltp --oltp-test-mode=complex --mysql-table-engine=innodb --oltp-table-size=10000000 --mysql-db=test --oltp-table-name=innodb_1kw --num-threads=16 --max-requests=500000 run
MySQL的基本配置
innodb_buffer_pool_size = 30G
innodb_data_file_path = ibdata1:1G:autoextend
transaction_isolation = READ-COMMITTED
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_log_group_home_dir=/u1/mysqlp/logs/
innodb_max_dirty_pages_pct = 75
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout = 20
innodb_file_per_table = 1
启用innodb-plugin,innodb-plugin的版本号为:1.0.6
测试结果
分别测试三次,取平均值:
版本 | 事务/秒 | 写入读取/秒 | 其它操作/秒 |
MySQL企业版Innodb | 1882.32 | 35764.1 | 3764.64 |
MySQL企业版Innodb-plugin | 2395.073 | 45506.45 | 4790.15 |
MySQL开源版innodb-plugin | 2288.09 | 43473.72 | 4576.18 |
Precona-MySQL | 2754.24 | 52330.52 | 5508.48 |
1kw 写入的速度
版本 | 写入1kw数据总时间 | 用户 | 系统 |
MySQL企业版Innodb | 3m25.318s | 0m1.953s | 0m0.177s |
MySQL企业版Innodb-plugin | 3m0.077s | 0m1.783s | 0m0.081s |
MySQL开源版Innodb-plugin | 3m0.169s | 0m1.882s | 0m0.125s |
Precona-MySQL | 3m0.030s | 0m1.979s | 0m0.192s |
结果分析
事务对比:
写入读取对比:
其它操作对比:
MySQL的开源版和企业版的Innodb性能相差不大,所以这里不在单独比较。总的来看Precona的MySQL性能表现良好。针对Innodb-plugin的的比较MySQL的企业版少表现比较好一点。从数据上来看选择不同的版本性能上最大的区别基本接近2倍。