虚拟机中的磁盘延迟

我一直在查看组织中的群集虚拟机上的一些性能问题。 其实这个问题似乎影响了我所看到的大部分虚拟机。 主机和VM都是2008R2 SP1。

我相信 – 从我读过的各种文章和build议中我已经看到 – I / O延迟是最重要的指标。 我在三个不同的地方看过这个指标:

  • 存储设备上的LUN延迟
  • Hyper-v主机上的逻辑磁盘平均秒数/写入和平均秒数/读取
  • 和上面一样,但在虚拟机上

这是为了缩小可能发生的任何延迟的来源。 果然,这是我发现….

我所看到的是我认为在LUN上可接受的延迟(3-15毫秒),在Hyper-V主机上可达20毫秒(仍然可以接受)。 当我在虚拟机上看到相同的度量标准时,我会看到高达300ms的常规高峰,一次最多10秒,平均大约20-30ms。

这个特定的虚拟机是一个SQL服务器,但同样适用于非SQL服务器。 相关的例外情况被添加到我们的AV解决scheme,以避免数据库文件的读写扫描。 而且,我们的VHD是一个固定的大小,而不是dynamic扩展。

所以对于我的问题:

这种延迟的可能原因是什么?以及/或者我可以在虚拟机(甚至是主机)中使用哪些其他指标来缩小这个延迟?

在VM内测量时间可能会有问题,因为虚拟处理器不能连续执行。 如果您想要清楚地了解实际发生的情况,请在pipe理操作系统中使用性能监视器。 寻找Hyper-V虚拟存储设备。 您也可以将其与来自资源监视器的数据相关联,以查看争夺访问磁盘的内容。

一般而言,特定VHD的响应时间将与承载VHD的卷上所发生的一切有关。

虚拟机上的“磁盘延迟”可能是主机上的CPU延迟,因为主机必须使用CPU周期来处理IO请求。

主机总体负载很重吗? 还是只是运行了很多虚拟机? 不知道什么hyper-v等价物,但VMWare指标是CPU准备时间 – 基本上等待主机运行的虚拟机的频率。