Windows Server 2019 Hyper-V 客户机磁盘性能

Windows Server 2019 Hyper-V 客户机磁盘性能

我有一个站点运行一个对 IO 非常敏感的应用程序(Accredo Saturn);它是一个用 Delphi 编写的会计/CRM 包,带有本地平面文件数据库。

由于各种历史原因,该网站在 Proliant DL380 G9 上的 Server 2012 R2 Hyper-V 下运行的 Windows Server 2008 R2 终端服务器上运行,其 DC 是带有 SBS 2011 的旧 DL380 G7(Exchange 长期以来一直在 Office 365 上)。

我现在已将它们升级到运行 Server 2019 的新 DL380 G10。主机和域控制器在 P408i-p 上的 6x 600 GB 10k SAS 上运行,这些 SAS 以 RAID10 形式存在(主机在其自己的分区上,其余部分位于一个大分区中),远程桌面服务器在 P408i-a 上的 4x 480 GB 混合使用 SATA SSD 上以 RAID10 形式存在。该服务器有 2x Xeon 4210 和 64 GB 内存。该软件的数据位于 SSD 阵列上的 VHDX 上,直接安装在远程桌面服务器上。

他们有 18 位用户,所有人都使用远程桌面服务器来运行该程序,8 位呼叫中心用户也使用 Unify 电话系统代理。有一两位使用 Edge。我打算在规格上做得有点过分,因为这个客户对速度很挑剔,而且正如我提到的,该软件很挑剔!

客户抱怨软件速度太慢。我测试了一下,发现一个操作原本需要 5 秒,现在却需要 15 秒。同一硬件上的旧 2008 R2 VM 运行正常,因此这几乎似乎与客户机有关。

我运行了 diskspd,没有用户登录(-c100b -b4K -o32 -F8 -T1b -s8b -W60 -d60 -Sh),发现两个虚拟机上的读取 IOPS 和吞吐量相似,但新的 2019 虚拟机上的线程存在很大差异。我看到客户机上的速度约为 531.41 Mbps 和 136k IOPS,但 2019 虚拟机上有两个线程的速度下降到 1.9 Mbps。旧虚拟机的速度为 520.44 Mbps,但每个线程的速度始终在 72-76 左右,除了一个线程的速度下降到 3.75。总计 133k IOPS。这是在 SSD 阵列上。

相比之下,具有相同参数的裸机 SSD 阵列为我提供了 999 Mbps,每个线程始终为 124-125 Mbps,总共 255k IOPS。

我已经研究这个问题好几天了。我尝试了注册表项来禁用 IO 负载平衡器,但没有效果——我不确定它是否适用于 2019 年。我尝试了固定和动态 VHDX——甚至在服务器之间交换了数据卷(它是自己的 VHDX)。尝试了动态和静态内存。尝试了启用和禁用 NUMA。

我已经束手无策了,并且有一个沮丧的客户,他明天将在旧的 VM 上启动他们今年的呼叫中心!

2008 R2 是第一代、版本 5 VM,而 2019 是第二代、版本 9。

任何关于恢复这些任务 IOPS 的提示都将不胜感激!

这是我的第一篇文章,如果我没有提供足够的相关或具体的信息,请原谅。

答案1

在 RAID10 中的 6x 600 GB 10k SAS 上

2x 高性能 SSD 的 Raid 1 能给你带来什么——50 倍的 IO?

一般是:GET SSD。

顶部使用静态大小的 SSD。

您能做的并不多 - 但您的数字听起来很疯狂。200k+ IOPS 说明编程非常糟糕。

答案2

这并不能证明性能问题是由存储引起的。

详细分析缓慢的应用程序工作流程。

  • 它需要哪些代码路径?分析每个函数需要多少时间。

  • 它执行哪些数据库查询?

  • 涉及多少数据记录、大小是多少?

  • 它如何处理并发,包括基于文件或数据库的锁?
  • 它是否使用网络上的任何外部资源?这些资源的延迟是多少?
  • 在线上与客户端的通信是什么样的?在这种情况下,客户端可能是终端服务器。

您可能需要软件供应商的帮助才能深入了解这一点。坚持要求提供详细的分析和可视性,就像您从应用程序性能监控包中获得的那样。

资源限制(如 CPU、内存、IOPS、网络带宽)可能是导致速度缓慢的原因。这些都是需要衡量的指标。但是,即使你为该操作系统上的应用程序堆栈投入硬件,它的速度也可能不会更快。唯一的办法是找出真正缓慢的地方。

答案3

我来这里研究另一个问题时才注意到这一点。问题已解决,归咎于 TSFairShare Disk。禁用它可以解决问题 - 事实证明,对于许多使用文件级数据库的应用程序来说,这都是一个问题。

我们在 Microsoft Dynamics GP 论坛中找到了解决方案。实际修复的详细信息总结如下 -https://www.ryslander.com/disable-fair-sharing-in-windows-server/- 对于 GP 和我们正在使用的应用程序(Accredo),只有 FSSDisk 需要被禁用 - 其余的我们保持不变。

我注意到服务器 2022 的默认设置已恢复为禁用。

相关内容