我有一台使用了 10 年的 Dell Poweredge 2950,将用 Dell Poweredge R820 替换。这两台机器都设置为运行 Hyper-V 的虚拟机主机。两种操作系统都是 Windows Server 2012 R2 Standard x64 位。我有已虚拟化的 MSSQL Standard 数据库,目前托管在 2950 上。
我最近将 MSSQL 从 2950 迁移到 R820,但发现 MSSQL 查询在新的 R820 机器上要慢得多。这些查询是从服务器本地执行的,数据库也是本地的,所以这肯定与网络无关。当我们在 2950 上运行查询时,大约需要 1-2 秒才能得到结果。然而,当在新的 R820 上执行相同的查询时,大约需要 4 秒。我真的认为这是一个硬件问题,因为所有设置都是相同配置的,因为它是一台虚拟机和相同的操作系统。
以下是两台机器的一些硬件规格:
- 戴尔 Poweredge R820
- 处理器:Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz(2 个处理器)@ 32 个核心
- 内存:56GB DDR3
- 4 英特尔 SSD RAID-10 配置,带戴尔 PERC H710P 适配器
- 阅读政策:自适应预读; 撰写政策:回寫; 磁盘缓存:已启用
- 戴尔 Poweredge 2950
- 处理器:Intel(R) Xeon(R) CPU X5450 @ 3.00GHz(2 个处理器)@ 8 个核心
- 内存:8GB DDR2
- 4 块 Seagate HDD 10K RPM RAID-10 配置,集成 Dell PERC 6/i
- 阅读政策:不预读; 撰写政策:回寫; 磁盘缓存:已禁用
有什么想法可以解释为什么一台装有 SSD 和良好 Raid 控制器卡的 2 个月旧机器运行速度比一台 10 年旧机器还慢?R820 的运行速度应该比 2950 快。
答案1
这几乎就像你可以寻找一个并排Intel X5450 和 E5-4620 CPU 的比较在线并解释结果!!
对于您的用例,虚拟化是一种便利。您肯定没有最大限度地利用新平台,但至少您使用的是最新且仍在其支持周期内的系统。此外,新 CPU 的直进时钟速度远低于旧 CPU。这可能会影响单线程进程性能。
我也会考虑存储。你知道具体的使用的英特尔固态硬盘 (SSD) 有哪些型号?SSD 可能具有不同的性能特征,并且根据您的 I/O 需求,有一定程度的优化可以提供帮助。
我首先想到的是:
- 调整 Hyper-V 参数(我只知道 VMware,但我相信 Microsoft 还有其他选择)
- 如果使用全 SSD 阵列,您需要启用快速路径控制器的功能。
- 根据工作负载使用合适的 SSD。
- 了解虚拟化仍然会带来一些开销,
- 了解时钟速度较慢的 CPU 可能会影响某些 CPU 操作。
- 有时,事情并不像以前那样运转……