通常在物理机上运行的虚拟机上的性能测试系统

软件测试 表现 虚拟化 xen
2022-01-26 20:57:31

我的雇主在带有附加硬盘驱动器的物理机器上运行我们的一些系统。我负责对这些系统进行性能测试。出于成本原因,我被要求测试那些在连接到 SAN 的虚拟机(使用 Xen)上运行的系统。这显然不是苹果对苹果的比较。一些系统使用大量磁盘 I/O,因此 SAN 问题尤其令人担忧。我不想用“无法完成”或“不可靠”来回应,我想推荐什么可能的。

以下是我在 Google 搜索中想到或发现的一些内容:

  • 测量 SAN 速度与硬盘驱动器并计算比率
  • 借用物理机足够长的时间来运行基准测试,用虚拟机做同样的事情并计算比率
  • 即使您无法预测物理机器上的绝对性能,您也可以预测相对性能(即候选版本会比当前生产的版本快还是慢)
  • 在一天中的不同时间进行多次测量以缓解资源争用问题,即与在同一物理机器上运行的其他虚拟机或与使用 SAN 的其他客户端的冲突。

在类似于我的环境中,您是否可以采取其他措施来缓解物理机性能和虚拟机性能之间的差异?我对实际经验特别感兴趣,而不是有根据的猜测。

3个回答

我不能给出一个硬性清单,但我可以提供一些建议:

  • 我肯定会从针对物理系统和该系统的虚拟化克隆的某种基线开始,以粗略了解您的 VM 性能影响。它不会是准确的,但它将是一个有用的数据点。
  • 您会想知道您的 SAN 配置——尤其是物理数据存储的位置。当我针对虚拟系统运行大量功能自动化时,我遇到了由以下原因引起的瓶颈:通过总线运行的 I/O 量;服务器配置以在一个 SAN 盘片上运行所有内容;同一 SAN 盘片和总线上其他 I/O 繁重的虚拟系统的存在和活动(如持续集成构建服务器和测试数据库......);事物上的虚拟系统多于其空间;还有很多...
  • 如果可能的话,您将希望监视虚拟化服务器上​​的 I/O 和其他性能负载因素 - 最好是在您计划用于性能测试的时间范围内,在服务器正常负载下运行的基线,然后再次随着性能测试的运行。
  • 正如其他评论者所提到的,除非您针对具有相同配置的相同硬件运行测试,否则您不会获得可以直接与硬件上运行的实时系统进行比较的结果。您将得到一个关于构建 X 的性能是否比构建 Y 更好或更差以及应用程序瓶颈可能是什么的指示(这也不会那么准确,因为您必须过滤掉虚拟服务器的任何影响,但它会指出潜在的问题)。

祝你好运。

计算比率是不可靠的,但仍然是可能的。您应该考虑到某些基准测试不会显示真实方面,因为某些内存缓冲区可能比真实磁盘场快得多,相反,虚拟机可能比真实服务器慢得多。因此,这取决于您将应用该比率的基准测试的哪一部分(哪个指标)。你必须做尽可能详细的指标集。那么这个方面可能更可靠。

通常,根据我的经验,如果您没有类似的硬件,性能测试不会告诉您任何信息。您可以缩小硬件尺寸,但至少应该是相似的。虚拟机根本不是类似的硬件。很抱歉,但您的结果将只是另一个估计。

但是你可以使用 VM 来进行性能调优。因此,如果一个版本的系统在 VM 上的性能很差,而另一个版本的性能更好,那么很可能在生产系统上性能也会提高。这里的另一个问题是:您可能会错过正确的性能瓶颈优先级。在 VM 上,某些问题可能看起来比实际硬件上的问题更小或更大。

祝你好运。

根据我的经验,您的选项#3 是最可行的。(相对性能)事实上,我会使用相同的配置运行相同测试的多个基准测试,并确保您获得一致的结果。如果这些结果是一致的,并且您的生产版本是“可接受的”,那么您可以使用 VM 结果作为您的新基准。

最重要的是,如果您可以在生产中的实际硬件(实时服务器或友好的客户)上运行基准测试。您可以将这些结果与您的新 VM 基准进行比较。

祝你好运。