我在运行 Windows Server 2012 R2 的 T2.micro AWS EC2 实例上有一个小型 asp.net 网站(使用 SQLServer express)。这是一个流量非常小的网站。它已经运行了 2 年,没有任何问题。
我在新年期间更新了 Windows,现在每天凌晨 3:00 到 5:00 之间都会收到 Cloudwatch 发出的 CPU 超过 100% 的警报。这不是用户或使用情况,而可能是其他自动化过程。我的问题是,如何最好地确定为什么会发生这种情况,如果需要,如何阻止它?
我查看了事件日志,在警报出现之前,在“服务控制管理器”的源下有与“Windows 模块安装程序”相关的条目。否则它们不具有描述性。
我相信这可能与自动更新有关。我确实将更新设置更改为“下载更新但让我选择安装它们”,所以我想这个过程可能在凌晨运行。
有没有更好的日志或方法(也许通过 AWS)来识别哪个进程导致了 CPU 警报?
感谢您的任何指导或建议!
答案1
禁用更新服务一晚后,警报消失了。这基本上确定了此警报的原因。现在您知道了这一点,您可以问这是否是个问题。我认为不是,但我可能错了。
我猜 Windows 有日志文件可以显示发生这种情况的确切时间。您可以熬夜,看看网站是否还能正常工作。如果 Windows 正确处理了这个问题,它会在更新时优先考虑网站,这样网站就可以正常工作,尽管速度可能会慢一些。
CPU 使用率达到 100% 并不是什么大问题。监控自己的笔记本电脑,进行更新或照片编辑,你会看到同样的效果。如果这种情况持续数小时,那就需要关注了。如果硬盘使用率达到 100%,那就需要立即采取行动了。
您可能可以禁用这些时段的警报,或者将其设置为仅在长时间高使用率后关闭。我们使用 Nagios,它会检查各种事情,例如 Web 服务器响应时间。如果发现反应缓慢,它会在五分钟后再次检查,然后稍后再检查一次,然后发出警报。因此,您可以将 Cloudwatch 设置为在凌晨 3-5 点期间发出较低频率的警报。
答案2
更新 Windows 10 后,我的电脑出现问题,CPU 使用率过高。我对很多 Windows 版本和更新感到厌烦。我被这个问题困扰了好几天。通过在线学习,我发现这个问题与Windows 模块安装程序。我按照一篇文章的说明操作,解决了我的问题。在我看来,微软应该有权控制随机发布 Windows 版本,并认真对待发布其更新。