新的Windows 2012 R2 Server上的MySQL性能降低

问题描述 投票:0回答:2

与两台旧机器相比,我最近建立的新机器在MySQL性能方面遇到了非常令人费解的差异。这些机器使用MySQL作为基于IIS的网络服务器的后端。

这三个都使用相同的MySQL选项(相同的ini文件)。所有人都在运行相同的表...所有MyISAM。缓存完全没有了。

最新的服务器(#3)生成的网页明显慢于其他服务器,我已将问题缩小到MySQL。最新的服务器(#3)在我运行的几乎所有基准测试中都等于或大大超过了其他机器。

只有mysql似乎很慢。

起初我怀疑一些特定的查询或配置可能是问题,但即使最简单的查询也较慢。我一直在使查询更简单,更简单,差异仍然存在。无论我运行什么查询,简单或复杂,新服务器(#3)大约慢2-3倍,即使没有任何表访问。我甚至运行了以下查询,仍然检测到速度的2倍差异:

SELECT 1; 

一个相当简单但不仅仅是一个简单的查询的例子是:

 SELECT COUNT(*) FROM users WHERE email LIKE '%ab%'

用户有大约18000行电子邮件索引。

此查询在服务器#1上大约需要0.0090秒。此查询在服务器#3上大约需要0.0270秒。

服务器#3基本上是空闲的,没有其他任何东西在运行。我还没有在其上安装防病毒软件,其中#1处于中等负载且#2几乎空闲。

操作系统肯定是不同的,但我不希望在一个应用程序上更快的机器上的新操作系统版本上有2-3倍的性能损失而没有其他应用程序。

我错过了什么????

服务器配置....

服务器#1(大约2008-09):

  • 英特尔酷睿i7至尊版,3.2 GHz(Nehalem,4核)
  • 英特尔DX58SO主板
  • 6 GB RAM(3 x 2GB)
  • Windows 2008,64位
  • Raid 1中的2 x Western Digital Black 640GB HD
  • MySQL 5.6.16
  • 连接器ODBC 5.2

Server#2(大约2010-11,有一些升级):

  • 英特尔酷睿i7,X995 @ 3.6 GHz(Westmere,6核)
  • 英特尔DX58SO2主板
  • 12 GB RAM(3 x 4 GB)
  • Windows 7专业版,64位
  • 1 x Intel SSD 480 GB(1 - 2年前)
  • MySQL 5.6.16
  • 连接器ODBC 5.2

服务器#3(2013-14):

  • 英特尔酷睿i7-4770K @ 3.5 GHz(Broadwell,4核)
  • 华硕Z87-WS主板
  • 16 GB RAM(2 x 8GB,1866)
  • Windows Server 2012 R2,64位。
  • Raid 1中的2 x英特尔SSD DC S3500 160 GB
  • MySQL 5.6.17
  • 连接器ODBC 5.2

这是变量的差异(“<”表示服务器1,其中“>”表示服务器3 ...删除了日志文件和服务器名称差异):

diff Variables.Server1.csv Variables.Server3.csv
18a19
> "block_encryption_mode","aes-128-ecb"
22c23
< "character_set_database","latin1"
---
> "character_set_database","utf8"
29c30
< "collation_database","latin1_swedish_ci"
---
> "collation_database","utf8_general_ci"

99c100
< "innodb_autoextend_increment","1000"
---
> "innodb_autoextend_increment","64"
206c207
< "innodb_version","5.6.16"
---
> "innodb_version","5.6.17"
212c213
< "key_buffer_size","8388608"
---
> "key_buffer_size","268435456"

335c336
< "pseudo_thread_id","12032"
---
> "pseudo_thread_id","4"

430c431
< "timestamp","1396976138.845271"
---
> "timestamp","1396976213.390847"
440c441
< "version","5.6.16"
---
> "version","5.6.17"
mysql windows performance windows-server-2008 windows-server-2012-r2
2个回答
0
投票

我曾经历过这一点。在Windows 2012中,IPv6是第一优先。尝试禁用IPv6。从PowerShell运行此:

c:> New-ItemProperty -Path HKLM:\ SYSTEM \ CurrentControlSet \ services \ TCPIP6 \ Parameters -Name DisabledComponents -PropertyType DWord -Value 0xffffffff

然后重启。

在windows \ system32 \ drivers \ etc \ host中取消注释127.0.0.1 localhost。


0
投票

虽然我还没有尝试过关于IPv6的建议,但我间接地取得了一些成功。

几周前,为Windows服务器发布了补丁/服务包。应用更新后,mysql神奇地开始执行与旧服务器类似或更好的操作,而不是慢得多。我不确切知道它有几个补丁,但我注意到了一个立即的改进。

© www.soinside.com 2019 - 2024. All rights reserved.