如何调试断电后 Windows 7 周期性无响应

如何调试断电后 Windows 7 周期性无响应

背景:我的电脑运行的是 Windows 7 Ultimate 64 位。CPU 是 AMD Phenom II X4 955。主板是 ASUS M5A88-M。大约一个月前,我家停电了,电源闪烁了几次,然后才恢复正常。

问题:从那时起,我的电脑就出现了奇怪的间歇性死机现象。断电后启动电脑时,3 天内都没有死机。然后,电脑在接下来的一周内反复死机,然后大约两周没有死机,然后再次死机,然后又几天没有死机,然后再次死机。

我注意到了以下共同点:

  • 电脑死机几乎总是在启动后不久或长时间闲置(8 小时以上)后发生。如果电脑启动后前几分钟没有死机,那么它一整天都可以正常工作,不会出现任何问题,甚至不会出现运行缓慢的情况,有时(如我上面提到的)它会继续工作几天或几周,然后再次死机。

  • 当发生死机时,CPU 使用率似乎降为零。这让我很惊讶,这让我认为这不是某些软件占用过多资源的问题。

  • 当我尝试执行某项操作时,冻结似乎会逐个影响应用程序。通常,任务栏会冻结,但我仍可以使用 alt-tab 在应用程序之间切换。有些应用程序会无响应,无法切换,但其他应用程序可以工作。通常,如果我尝试在给定应用程序中“执行某项操作”(例如,单击菜单、选择列表中的项目),它会冻结。最终,所有应用程序都会以这种方式冻结。然后,我通常仍可以移动窗口,但最终它们会留下“痕迹”,因为屏幕无法正确重绘。

  • 有时,如果我等待一段时间(5 到 30 分钟),计算机就会“唤醒”并半正常运行几分钟,然后再次陷入无响应状态。

我尝试过的方法

我尝试了这些事情:

  • 我使用 SpeedFan 和 SeaTools 对硬盘运行了 SMART 诊断程序。我还使用 SeaTools 运行了“长通用”测试。未发现任何错误,所有 SMART 统计数据均正常。

  • 我运行了 Windows 内存诊断工具,没有发现任何错误。我运行了 Memtest86 一整夜;它运行了三次,没有发现任何错误。

  • 我使用 Microsoft Security Essentials 和 MalwareBytes 进行了扫描,没有发现重大威胁(只有几个注册表跟踪器条目)。

  • 我运行了 SFC /SCANNOW。它报告没有系统文件问题。

  • 我启动了 Linux Live CD 并运行了一段时间,没有遇到任何问题,但我不确定这是否意味着什么,因为即使在 Windows 上这个问题也是间歇性的,所以可能只是我运气好。

  • 我在设备管理器中注意到一个“未知设备”,我发现这是一个 ACPI 设备。我为它安装了驱动程序。我想可能是某些电源设置出了问题,所以我尝试在 BIOS 和 Windows 电源管理设置中禁用某些功能(例如,禁用 AMD Cool 'n' Quiet、禁用 Windows 中的 CPU 节流等)。有时我以为我已经修好了,但第二天它仍然会冻结。(我还吹掉了 CPU 上的一堆灰尘,以防它过热。)

我还查看了 Windows 事件查看器。在系统冻结的那些晚上(即在我早上注意到冻结之前),某些 Windows 服务(通常是 Windows 错误报告服务)偶尔会出现超时错误。这表明系统确实在夜间冻结,并且 Windows 服务正在超时。

这些超时错误是零星的。看起来大多数此类错误都发生在此事件之前(这不是错误,只是一条“信息”消息):

Microsoft 反恶意软件实时保护已重新启动一项功能。建议您运行完整的系统扫描,以检测此代理关闭时可能遗漏的任何项目。

功能:访问时

原因:筛选器驱动程序已重新启动扫描项目并且已退出传递模式。

我不确定这是否意味着问题真的出在 Microsoft Security Essentials 正在做的事情上,或者这只是矿井中的金丝雀,是第一个表明冻结开始的事情。但如果计算机启动时没有冻结,我可以手动运行 MSE 扫描而不会出现问题(并且它没有发现任何威胁)。

我还一直在使用 SpeedFan 记录 CPU 温度和电压等数据,因为我想知道其中是否存在任何模式。我没有发现读数本身有什么异常,但日志中存在零星的间隙。我将 SpeedFan 设置为每 3 秒记录一次,但在发生冻结的那些晚上,有许多地方的日志条目有大约 5 分钟的间隙。这些间隙似乎只发生在这些有问题的时间(即,在半夜冻结或早上即将冻结时)。这再次表明它在半夜冻结到 SpeedFan 无法继续记录的程度。

问题

发生了什么事?这些问题似乎是在断电后开始的,这让我怀疑是硬件问题,但我不知道是什么硬件导致了它。另一方面,崩溃似乎总是在特定时间发生(长时间闲置后或启动时),这让我怀疑它与某些软件有关,例如 MSE 自我更新。

事件查看器超时和 SpeedFan 日志间隙都表明冻结发生在我上床睡觉后,并间歇性地持续到早晨(当我重新启动时)。但我找不到任何有关可能导致冻结的实际发生情况的信息。我在事件查看器中能找到的唯一错误只是“超时错误我冻结了”之类的东西,它们并不表示任何实际的错误情况;它们似乎只是意味着冻结已经发生。

硬盘和内存诊断似乎排除了这些组件。我目前的硬件猜测是主板、CPU 或电源。我上面描述的问题听起来像是这些组件可能导致的吗?或者,我是否应该尝试其他软件解决方案?

答案1

您的态度是正确的。在尝试修复任何问题之前,先尝试找到缺陷。但最好的诊断工具是任务管理器(同时按下 Cntrl-Alt-Del)。在进程中,显示​​的是消耗 CPU 时间的进程。其他潜在瓶颈是内存使用、页面错误以及 I/O 读写。这些可以通过单击视图 > 选择列来查看。

查找过度消耗资源的进程。还可以通过右键单击进程来终止它,以确定哪些进程可以“释放”系统。

另一个瓶颈可能是 dumpreports 消耗了太多资源,因为其他进程崩溃了。终止该进程以释放系统只是另一个有用的事实 - 而不是解决方案。

微软提供了“强化版任务管理器”——称为 Process Explorer。另一种选择。

答案2

我暂时认为这个问题已经解决了,并且想发布一些似乎可以解决问题的方法,以防其他人遇到类似的问题。

与我最初的猜测相反,问题似乎出在 Microsoft Security Essentials 上。根据我提到的事件查看器消息,我开始怀疑 MSE 是否导致了锁定。当我偶然解压一个大文件并冻结时,我也得到了一个重要线索。这让我怀疑 MSE 在尝试扫描新解压的文件(“访问时”)时再次冻结。

我四处寻找,发现有人说 MSE 并不是当今最好的防病毒软件,所以我删除了它(并用 BitDefender 替换它)。现在已经四周没有出现死机现象了。

我祈祷这真的能解决问题,但我还是有些怀疑。我无法解释为什么这种奇怪的 MSE 故障是由断电引起的。同样令人费解的是,只有当 MSE 执行自动化扫描;我可以手动运行扫描,不会遇到任何问题。(我甚至对整个驱动器进行了全面扫描,没有任何冻结,因此不可能是它锁定了某个特定的损坏文件。)当然,对于软件问题来说,故障模式非常奇怪:如果 MSE 能够将我的 CPU 限制为零,而本身似乎没有使用任何重要资源,那就有点令人不安了。

无论如何,希望删除 MSE 可以解决问题。

相关内容