mysql-percona 5.6 ubuntu 中两个类似服务器之间的性能差距很大

mysql-percona 5.6 ubuntu 中两个类似服务器之间的性能差距很大

我无法找出两个(三个?)类似的 percona 5.6 实例之间性能差异的原因。我使用 sysbench 准备了一些类似 tpcc 的基准测试,在 3 个类似的服务器中,一个服务器的结果好 30-40%。就基准测试而言,它使用 2GB 测试数据库,结果是重复的,以下是一些事实:

  • 在基准测试期间,所有表都由操作系统缓存,iowait 平均为 1-2%
  • 执行多次运行不会改变结果,无论是否重新创建数据库结构
  • 重新启动 mysql/server 不会改变结果
  • “显示变量”不显示服务器之间的任何差异

我已经没有主意了。所有服务器都是戴尔 R410,配备双 X5570、64G 相同内存配置和内存条(最近更换)和 860/870 EVO 500G SSD。启用 HT,操作系统 Ubuntu 18,Percona 5.6

如前所述,基准测试似乎是可以预测的(使用其他配置进行了多次测试) - 问题在于一个特定的场景 - 3 个类似的服务器,其中 2 个性能几乎相同,而第 3 个的结果好 30%。一个区别是,一台服务器(结果更高的那台)的磁盘控制器老旧、迟缓,缓存为 256MB - 但如果测试期间的 iowait 可以忽略不计,它怎么会有这样的影响呢?

值得一提的是,我已经接管了这些服务器,做了一些硬件升级,但并没有“从头开始”配置它们。

任何帮助均感激不尽。

编辑:附加信息:

基准测试主要依据: https://github.com/Percona-Lab/sysbench-tpcc

只需将其与自定义脚本一起打包即可简化传播 - 我正在使用单线程来更好地查看单核性能之间的差异。

为了便于书写,我们将 2 台性能较差的服务器称为“坏服务器”,将性能好 30% 的服务器称为“好服务器”。更多信息如下:

  • 坏的服务器使用三星 EVO 870,好的服务器使用 860 EVO
  • 所有服务器的平均负载约为 1.5
  • 尝试禁用 HT - 没有影响
  • 操作系统缓存的表文件由 ftools 的 fincore 检查 - 预热后,整个测试期间 iowait 下降到 0-2%
  • 在 fiobenchmark 中,布置 8GB 测试文件,75/25 RW 测试,坏服务器的 IOPS 结果比好服务器好大约 400% - 我认为好服务器受到旧控制器的限制,而坏服务器仅使用直接 SATA。

但是,我的问题是,如果 iowait 可以忽略不计,为什么控制器缓存会有如此大的影响(如果有的话)?

相关内容