比较虚拟服务器和专用服务器之间的 Microsoft SQL 服务器性能

JP *_*ons 5 performance sql-server-2008

我目前有一台专用的 Windows 2008 r2 服务器,由于成本原因,我正在考虑迁移到虚拟服务器。现在我知道 SQL 应该在专用服务器上,但是灵活性和成本对于我们的情况来说是一个很大的优势。我想比较两台服务器。我知道这很难,因为一个是实际负载的生产服务器,另一个是一个用户的测试服务器。

两者都运行 Microsoft SQL Server 2008。dedicated 有 12 GB ram,virtual 有 12 GB ram 专用有一个双四核 CPU,virtual 有 4 个 CPU

两者都具有完全相同的数据库(我在虚拟测试中从生产中恢复了备份)

我使用大量视图执行了大量选择查询,并使 Microsoft SQL Server Management Studio 包含Client statistics. 显示总执行时间

不知何故,虚拟现在显示为零(因为我们添加了 2 个虚拟 CPU),但在管理工作室的右下角,它显示虚拟服务器用了 3 秒,专用服务器(生产)用了 2 秒来完成查询。

如何在虚拟和生产之间进行良好的比较?

编辑:有人告诉我,VMWare 中的半虚拟化设置可以更好地比较两个实例的性能。

Mar*_*ith 11

测试孤立的查询不会帮助您做出这个决定。由于您有一个现成的数据库,因此可以使用它来捕获具有代表性的工作负载。

  • 从您的实时专用服务器捕获分析器跟踪
  • 使用RML 工具集创建重放文件
  • 使用 ORCA 对虚拟服务器执行

在较早的问题中发布了RML 工具的简要摘要,您可能会发现它很有用。要比较两次运行的结果,请捕获针对虚拟服务器运行的第一个跟踪的跟踪,并通过ClearTrace运行这两个跟踪


小智 5

比较两台服务器的唯一完全公平的方法是:

  • 获取与生产服务器规格相同的第二台专用服务器,或停止使用生产服务器进行生产。
  • 创建测试台
  • 在专用服务器和虚拟服务器上运行测试台以进行比较

现在,第 1 步可能很昂贵(但是,嘿,如果您可以将服务器租用一个月,它可能没有您想象的那么贵),而第 2 步总是非常复杂!