mysql 5.0 vs 5.6_MySQL 性能比较测试:MySQL 5.6 GA -vs- MySQL 5.5

MySQL 5.6 GA 发布了,毫无疑问,这是 MySQL 最棒的一个版本。

如果你还不清楚 MySQL 5.6 版本一长串的新特性和改进内容,可以从这里获得了解。

而我这篇文章的主要目的则是性能的测试。

我使用 Sysbench workloads (Read-Only/Read-Write) 来测试。下面是我的测试环境:

硬件配置:

服务器 : 32核 bi-thread (HT) Intel 2300Mhz, 128GB RAM

操作系统 : Oracle Linux 6.2

文件系统 : XFS mounted with "noatime,nodiratime,nobarrier,logbufs=8"

MySQL : 5.6-GA, latest 5.5

MySQL 配置:

#--------------------------------------------------

max_connections = 4000

key_buffer_size = 200M

low_priority_updates = 1

sort_buffer_size = 2097152

back_log = 1500

query_cache_type = 0

# files

innodb_file_per_table

innodb_log_file_size = 1024M

innodb_log_files_in_group = 3

innodb_open_files = 4000

table_open_cache = 8000

table_open_cache_instances = 16

# buffers

innodb_buffer_pool_size = 32000M

innodb_buffer_pool_instances = 32

innodb_log_buffer_size = 64M

join_buffer_size = 32K

sort_buffer_size = 32K

# tune

innodb_checksums = 0

innodb_doublewrite = 0

innodb_support_xa = 0

innodb_thread_concurrency = 0

innodb_flush_log_at_trx_commit = 2

innodb_flush_method = O_DIRECT

innodb_max_dirty_pages_pct = 50

innodb_use_native_aio =1

innodb_stats_persistent = 1

innodb_spin_wait_delay = 6 / 96

# perf special

innodb_adaptive_flushing = 1

innodb_flush_neighbors = 0

innodb_read_io_threads = 16

innodb_write_io_threads = 4

innodb_io_capacity = 2000

innodb_purge_threads =1

innodb_adaptive_hash_index =  1 / 0

# Monitoring

innodb_monitor_enable = '%'

performance_schema = ON

performance_schema_instrument = '%=on'

#--------------------------------------------------

MySQL 调整:

配置最主要的不同是 AHI (innodb_adaptive_hash_index) 和 Spin Delay (innodb_spin_wait_delay) -- 而其他的部分在这个测试过程中基本上已经足够好了。

关于 AHI 的影响我之前已经写了很多文章。AHI 主要的困境在于“用还是不用”,在很多情况下它可以帮助因为锁导致的堵塞并加快索引的访问,但在高并发的情况下可能会因为其 btr_search_latch 导致 rw锁争用导致的瓶颈

在 MySQL 5.6 中的 Spin Delay 设置需要特别的注意,因为它在管理内部互斥量和 rw 锁争用时扮演非常重要的角色,利用它可能会让你轻松的将性能提升一倍。(你可以通过这里来了解详情,但你应该知道,没有银弹,也没有什么固定的最优值是适合各种不同的环境,这个完全依赖于你的系统负载。因此其默认值跟 MySQL 5.5 一样都是 6)。

因此,在我的测试中,我非常好奇想了解在不同的负载情况下最佳的 AHI 和 Spin Delay 设置的配置对。

接下来要记住 MySQL 5.5 和 5.6 在可伸缩性方面的限制。我在 8、16、32 和 64 核的情况下重新进行测试(64核相当于开启和超线程的32核机器,其他的都没有开启超线程)0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值