![Azure VM 上的 IIS CPU 使用率高,入站流量低](https://linux22.com/image/790610/Azure%20VM%20%E4%B8%8A%E7%9A%84%20IIS%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E9%AB%98%EF%BC%8C%E5%85%A5%E7%AB%99%E6%B5%81%E9%87%8F%E4%BD%8E.png)
我在 Azure VM 上运行的 IIS 服务器偶尔会出现 CPU 使用率过高的情况。这种情况只发生在周四、周五或周六上午 11 点至下午 2 点之间。CPU 使用率为 100%,无法在 VM 上执行任何操作。我只能强制关机。即使强制关机也需要 15 分钟以上才能在该状态下停止 VM。我无法重现该问题。
我在 Windows 2022 DataCenter 上的 IIS 10 上有超过 300 个应用程序。入站调用非常少。每秒最多收到 20-30 个请求。我的 RAM 绰绰有余。每日使用量不超过 RAM 的 60%。每日 CPU 使用率不超过 30%。请注意,在同一个虚拟机上,我也有 MSSQL 服务器。当 CPU 使用率高时,我可以清楚地看到是 IIS 故障。每当我停止它时,一切都正常运行。我曾有过重新启动虚拟机一两次,出于某种原因,一切都恢复正常的情况。我观察到,在 CPU 使用率高的那一天,即使只有 2-3 个客户端正在使用服务器,我也会看到通过 RDP 在虚拟机中移动鼠标或移动窗口很慢。在正常的日子里,它运行得相当快。也许这是与网络有关的某种提示?
到目前为止我尝试修复的问题:
- 优化代码 - 使用分析工具我没有发现任何内存泄漏或缺陷
- 禁用防火墙和防病毒软件 - 没什么作用
- 购买更多 RAM 和 CPU - 仍然无济于事
- 通过重命名我想要阻止的其他 IIS 应用程序的文件夹将 IIS 应用程序限制为仅 3 个应用程序,以便我的客户端不会访问应用程序 - 它以某种方式帮助 CPU 使用率降低约 30-40%,但我通过 RDP 访问的虚拟机仍然运行缓慢。我说的慢是指移动鼠标滞后和移动窗口很慢。
- 通过 Azure app insights 和 new relic 跟踪高 CPU 使用率 - 没有帮助,它们都显示没有高 CPU 使用率。尽管他们跟踪到故障期间有停机时间。
- 向 Azure 支持寻求帮助 - 他们已经运行了诊断程序,并且根据他们的说明,一切正常,没有发现任何问题
- 购买更好更快的磁盘 - 没有帮助
我还能做些什么来追踪 CPU 使用率过高的实际问题?