免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1625 | 回复: 1
打印 上一主题 下一主题

MySQL 5.6 GA与5.5性能比较测试 [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2015-06-24 22:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-23 11:24 |只看该作者 |倒序浏览
如果你还不清楚 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 配置:
  1. #--------------------------------------------------  
  2. max_connections = 4000  

  3. key_buffer_size = 200M  
  4. low_priority_updates = 1  
  5. sort_buffer_size = 2097152  
  6. back_log = 1500  
  7. query_cache_type = 0  

  8. # files  
  9. innodb_file_per_table  
  10. innodb_log_file_size = 1024M  
  11. innodb_log_files_in_group = 3  
  12. innodb_open_files = 4000  
  13. table_open_cache = 8000  
  14. table_open_cache_instances = 16  

  15. # buffers  
  16. innodb_buffer_pool_size = 32000M  
  17. innodb_buffer_pool_instances = 32  
  18. innodb_log_buffer_size = 64M  
  19. join_buffer_size = 32K  
  20. sort_buffer_size = 32K  

  21. # tune  
  22. innodb_checksums = 0  
  23. innodb_doublewrite = 0  
  24. innodb_support_xa = 0  
  25. innodb_thread_concurrency = 0  
  26. innodb_flush_log_at_trx_commit = 2  
  27. innodb_flush_method = O_DIRECT  
  28. innodb_max_dirty_pages_pct = 50  
  29. innodb_use_native_aio =1  
  30. innodb_stats_persistent = 1  
  31. innodb_spin_wait_delay = 6 / 96  

  32. # perf special  
  33. innodb_adaptive_flushing = 1  
  34. innodb_flush_neighbors = 0  
  35. innodb_read_io_threads = 16  
  36. innodb_write_io_threads = 4  
  37. innodb_io_capacity = 2000  
  38. innodb_purge_threads =1  
  39. innodb_adaptive_hash_index =  1 / 0  

  40. # Monitoring  
  41. innodb_monitor_enable = '%'
  42. performance_schema = ON
  43. performance_schema_instrument = '%=on'
  44. #--------------------------------------------------
复制代码
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核机器,其他的都没有开启超线程)

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2013-04/82070.htm

论坛徽章:
0
2 [报告]
发表于 2015-07-02 15:42 |只看该作者
楼主叼叼的。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP