用户在 Windows 系统上有时会遇到蓝屏 (BSOD, Blue Screen of Death),或者机器停止响应 (Hang) 这两类业务影响严重的问题。Windows 系统蓝屏后,默认配置下机器会自动重启恢复;对于机器停止响应,往往也需要重启作为临时解决方案以快速恢复业务,这都会造成业务的中断。考虑到业务风险,客户需要找出问题的根本原因来避免问题再次发生。但是由于 Windows 蓝屏和停止响应都是技术疑难类问题,需要配置注册表,等待问题复现后收集核心转储 (Kernel Dump) 或 完全内存转储 ( Complete Dump ),花费数天或数周分析,有时甚至还要多次复现才能定位问题根本原因, 处理非常耗时。
这两类问题虽然表象不同,但原因比较类似。一般与操作系统 bug、驱动或三方软件兼容性、杀毒软件、病毒木马等原因相关。在本篇文章中,我们根据云平台上这两类问题的排查经验,总结了这两类问题的可能原因、跟进方案和最佳实践。
尤其是考虑到这两类问题分析耗时,业务潜在风险高,而通过采用本文提供的最佳实践,可以快速解决大部分的系统蓝屏和停止响应问题,消除业务风险。因此我们强烈建议您在实际运维中,采纳本文最佳实践以便在阿里云 ECS 上更好的使用 Windows 操作系统。
Windows 蓝屏的处理
Windows 操作系统在遇到关键异常的情况下,为了防止数据丢失,系统自动崩溃蓝屏,如果有配置内存转储文件(crash dump) 的收集,系统会自动生成蓝屏存储到指定的目录 (默认文件为 C:\Windows\memory.dmp)。
Windows 系统有多种原因导致蓝屏,包括但不限于:
- 误操作或者病毒引起的系统文件、注册表损坏
- 驱动程序与操作系统兼容性引起的异常内存访问
- 操作系统自身 bug
- 三方杀毒软件驱动异常
操作系统在蓝屏的情况下,会抛出对应的 Bugcheck Code 以及可能的导致蓝屏的模块来大概说明问题发生的原因。例如:如下是通过微软notmyfault.exe手工触发蓝屏的结果。
微软官方列举了如下 Bugcheck Code,详细请参考如下链接:
Bug Check Code Reference
http://msdn.microsoft.com/en-us/library/windows/hardware/ff560129(v=vs.85).aspx
对于用户而言,更重要的是如何处理 Windows 蓝屏,请参考如下跟进方案以及最佳实践。
最佳实践
根据与微软官方的沟通以及日常排查经验,为了防止系统蓝屏的发生以及可能引起的数据丢失,我们建议客户在日常运维中:
<1> 请在 ECS 上启用安骑士防护或其它商业版杀毒防护工具,定期杀毒,定期更新杀毒软件版本,防止病毒或者杀毒软件驱动与操作系统兼容性引起的蓝屏。
<2> 请定期运行 Windows Update,确保微软最新安全更新已经安装。
<3> 请不要将重要数据放在系统盘,建议放在数据盘中。
<4> 对系统盘、数据盘启用自动快照策略,同时在重要变更操作前手工创建系统盘和数据盘快照,以便异常情况下通过快照回滚快速恢复数据。
注:创建自动快照策略
https://help.aliyun.com/document_detail/25456.html
<5> 请在修改系统注册表前备份注册表文件。避免修改系统文件。
跟进方案
如果 Windows ECS 在使用过程中突然断开、无法远程,查看日志发现异常重启的情况,怀疑可能出现过系统蓝屏,请采用如下方法验证:
方法1:打开"事件查看器",打开"系统日志", 在问题发生时间点,如果看到有来源"volmgr"抛出的 ID 46事件,说明之前发生过蓝屏,但是由于没有配置 Paging File 页面文件以及内存转储文件,导致 dump 收集失败。
错误 2016/3/25 0:42:55 volmgr 46 无
故障转储初始化未成功
方法2:如果之前有正常配置过蓝屏收集,在系统日志中可以发现事件 ID 41的 Kernel-Power 的关键错误日志,提示系统从意外的关闭中回复以及事件 ID 1001,来源为 Bugcheck 的日志提示系统出现崩溃。
由于蓝屏日志的分析非常耗时,考虑到快速恢复业务和避免问题再次发生,我们强烈建议客户在遇到蓝屏机器重启后,采用如下3条来避免潜在的已知问题:
<1> 卸载三方杀毒软件
请注意:禁用杀毒软件的防护功能一般不会消除杀毒软件内核驱动的影响。如果由于安全需求无法卸载三方杀毒软件,请您务必更新杀毒软件到最新版本以消除兼容性问题。
<2> 安全模式下,使用微软 Msert 离线杀毒工具或者三方专业杀毒软件杀毒。
<3> 运行 Windows Update,安装所有更新。
Windows 停止响应 (Hang) 的处理
Windows 出现无法响应的现象,包括但不限于:
- 机器运行一段时间后,无论远程桌面还是管理控制台,背景不变,鼠标无法移动。
- 用户可以看到密码输入页面,输入密码后,出现白色背景,蓝色背景或者黑色背景,无法登入操作系统。
- 操作系统仍然在运行,但是无法 ping 通,无法通过网络访问应用。
Windows 系统有多种原因导致停止响应,包括但不限于:
- 病毒影响、三方应用(杀毒软件)引起的兼容性问题。
- 系统设备驱动程序与操作系统兼容性引起。
- Windows 操作系统自身 bug。
- 系统内存核心资源 (Committed Charge, Paged Pool, Non-paged Pool等) 耗尽。
- 机器启动脚本、登录脚本、组策略应用由于线程死锁等原因导致无法登录。
最佳实践
与系统蓝屏问题处理相同,根据与微软官方的建议以及日常排查经验,为了防止系统停止响应,我们建议客户在日常运维中:
<1> 请在 ECS 上启用安骑士防护或其它商业版杀毒防护工具,定期杀毒,定期更新杀毒软件版本,防止病毒或者杀毒软件驱动与操作系统兼容性引起的系统停止响应。
<2> 请定期运行 Windows Update,确保微软最新安全更新和系统补丁已经安装。
<3> 请不要将重要数据放在系统盘,建议放在数据盘中。
<4> 对系统盘、数据盘启用自动快照策略,同时在重要变更操作前手工创建系统盘和数据盘快照,以便异常情况下通过快照回滚快速恢复数据。
注:创建自动快照策略
https://help.aliyun.com/document_detail/25456.html
<5> 请在修改系统注册表前备份注册表文件。避免修改系统文件。
<6> 请经常检查系统负载,确保运行的三方应用程序不存在资源泄露或线程死锁,定期更新三方应用程序到最新版本。
跟进方案
考虑到业务快速恢复,我们强烈建议客户在遇到系统停止响应的情况,重启机器恢复业务后,参考如上的最佳实践。尤其是请您务必采用如下4条来避免潜在的已知问题:
<1> 卸载三方杀毒软件
请注意: 禁用杀毒软件的防护功能,杀毒软件内核驱动可能仍然运行,继续影响操作系统行为。如果由于安全需求无法卸载三方杀毒软件,请您务必更新杀毒软件到最新版本以消除兼容性问题。
<2> 安全模式下,使用微软 Msert 离线杀毒工具或者三方收费版本杀毒软件杀毒。
<3> 运行 Windows Update,安装所有更新。
<4> 检查或停用 Windows 的启动脚本、登录脚本、组策略以查看问题是否再次发生。
如果采用最佳实践后,仍然发生Windows蓝屏或者停止响应问题,建议您:
1、参考微软官方 KB 中的排查建议
Troubleshoot "blue screen" or Stop error problems before you contact Microsoft Support
https://support.microsoft.com/en-us/kb/3106831
2、参考知识点“ECS Windows开启内核转储(Core Dump)配置说明”收集数据,工单反馈进一步分析。