我们在 Azure 上为客户安装了 5 台虚拟机。所有虚拟机均运行顺畅。
现在,从周一开始,其中一位用户的虚拟机每天下午 4 点(UTC+1 (+-1h))都会出现性能下降的情况。当我们遇到这些性能问题时,CPU 会随机以 100% 左右的速度运行。
所有其他虚拟机均运行顺畅,并且所有虚拟机上的软件堆栈完全相同。
我们已经与 Microsoft 支持部门联系了 24 多个小时。在此期间,我们已经重新部署了 VM 2 次,一次是从快照中部署,一次是从头开始部署。问题始终存在。
所有其他虚拟机在相同情况下运行,CPU 利用率约为 5-30%。
这个问题根本无法重现。它只是时不时地出现几个小时。
我们现在有四位经验丰富的工程师,但我们无法解决这个问题。
你们知道这是怎么回事吗?我很高兴听到任何意见。我们很快就会疯掉的……
我们在机器上运行的内容:
- O365办公室
- Adobe Reader
- Avast 防病毒软件
- 火狐浏览器
- 2 款专门针对机械师的软件工具
- 一个驱动器
- ScreenConnect
我们已经采取了哪些措施来发现/修复该问题:
- 性能诊断(没有特定过程导致此问题)
- 比较 Windows 版本
- 比较所有已安装的软件
- 比较所有 Azure 设置
- 从头开始重新创建虚拟机
- 检查磁盘吞吐量
- 检查内存使用情况
- 全面 AV 检查
- 根据 Microsoft 支持的建议,从所有虚拟机中删除 Veeam(SQL express 是通过 Veeam 安装的)
- 检查所有事件日志 -> 没什么特别的
当我记起我们尝试过的更多事情时,我会在这里编辑
答案1
感谢 Reddit 上可爱的朋友们,我找到了解决方案。因此,我们正在运行可突发虚拟机(B 系列),有人向我指出,这些虚拟机具有“随时间爆发的配额”。
深入研究后,我发现这个提示非常准确。我知道这些虚拟机是可突发的,但我不知道如何测量或限制。
经过大量的挖掘和验证假设后,使用 Azure 监视器查看所有虚拟机上的 CPU 百分比以及“剩余 CPU 积分”指标,结果显示 CPU 积分即将耗尽,因此 CPU 上限为 40%,直到负载减少或积分累积完成。
当停止和取消分配虚拟机时,信用额度将被重置为基线,并且在客户完成工作之前,信用额度永远不会被用完。
非常感谢您为我指明了正确的方向,这为我们省去了很多麻烦。
现在我们已将规模增加了一倍,并且它一直运行良好,并且信用额度不会降为零。
这种情况是本周才开始发生的,因为我们在周一和周二运行备份工作,所以当备份开始时,中午左右的 CPU 使用率较高,而下午 4 点左右信用额度就会下降。
本周剩余时间加强监控并试图通过增加使用量来引发问题确实导致问题再次发生但被推迟了。
此外,在分析过程中,我们意识到这个特定的用户只是在同时执行更多操作,因此 CPU 更频繁地超过 CPU 基线,从而进一步减少 CPU 积分。
在我们弄清楚这一点大约两个小时后,微软也得出了同样的结论。
感谢大家的意见,特别是 Reddit 用户 /u/VTi-R,我非常感激!
您可以在此处了解有关 B 系列虚拟机的更多信息https://azure.microsoft.com/de-de/blog/introducing-b-series-our-new-burstable-vm-size/