本文共 1072 字,大约阅读时间需要 3 分钟。
MySQL 5.6.10 GA版本正式发布,性能测试数据也随之更新。本次测试涵盖了以下几个版本:
MySQL-5.5.29、MySQL-5.6.10、MariaDB-5.5.28a以及MariaDB-10.0.1。为了确保测试的全面性,仍然保留了MySQL 5.5版本进行回归测试,以验证新版本是否存在性能下降的问题。
测试环境的主要差异在于存储选择:本次测试使用了带有512MB电池备份缓存的RAID-5存储,而不是SSD。测试机器配置为16核处理器,其中12核用于mysqld,另外4核用于sysbench。测试使用了sysbench-0.5进行OLTP测试,包含8个表和10GB的数据。InnoDB的缓冲池设置为16GB,日志文件大小为4GB。由于不同存储系统对InnoDB配置的要求不同,特别是对于IO Capacity和flush neighbors参数进行了相应调整。
测试结果显示,MySQL 5.6在只读测试中的表现异常。在8个线程的负载下表现尚可,但随着并发线程增加到16个,性能开始下滑,甚至在更高的并发下比MySQL 5.5表现更差。MariaDB 10.0的表现则相对MariaDB 5.5略有下滑,但不如MySQL 5.6明显。
响应时间图表显示了较好的平滑性,这表明MySQL 5.6和MariaDB 10.0在CPU周期分配上更为高效。值得注意的是,这次测试未使用线程池,因为Oracle的线程池实现已经闭源,导致无法在MariaDB上进行公平测试。线程池对性能的影响在之前的文章中有详细讨论。
第二个测试是OLTP读写测试,结果与只读测试相似。MySQL 5.6和MariaDB 10.0的性能在高负载下都下滑了约10%。这与MySQL 5.5在高负载下的性能下滑现象相符,主要原因是同步的flush操作导致的性能瓶颈。响应时间图表显示较为平滑,这表明5.6和10.0版本采用了更好的flush算法,适应性更强。
需要注意的是,使用多个缓冲池实例时,写操作延迟会显著增加。只读测试使用了16个缓冲池,而读写测试仅使用了1个缓冲池。
结论:
MySQL 5.6的性能表现较5.5版本有所下滑,尤其是在高并发场景下。这与Oracle发布的测试结果存在差异,可能与Oracle使用更大的测试环境和闭源线程池有关。此外,MySQL 5.6允许更大的redo日志缓冲池,减少了同步flush操作对性能的影响。
测试脚本可通过指定链接访问,但由于用户要求已去除链接信息,目前不提供。欢迎读者使用类似的环境进行测试并分享结果。
转载地址:http://bhhfk.baihongyu.com/