Windows 云主机死机是近期频繁出现的问题。与蓝屏不同,死机时系统不自动重启也不留 dump,现场信息容易丢失。
本文覆盖死机时的取证方法、五种常见根因和对应的处理方案。
01 / TRIAGE
先区分:死机、蓝屏、反复重启
三种现象对应不同的原因和处理路径:
本文重点讨论死机场景,蓝屏场景在相关节中一并说明。
02 / EVIDENCE COLLECTION
死机时的取证
控制台仍可操作时
优先导出系统事件日志,死机前的 Error 和 Critical 事件是关键线索:
# 导出日志
wevtutil epl System C:\diag\system.evtx
wevtutil epl Application C:\diag\application.evtx
# 查看 CPU 和内存消耗 Top 进程
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, CPU, WorkingSet64
控制台无响应(彻底 hang 死)
从云平台侧收集物理机层面的信息:
journalctl -u libvirtd --since "15 min ago" | grep -i "error\|fail\|timeout"
ceph -s
ceph osd perf | head -20
最后一步
控制台截图保存死机现场画面,然后执行重启恢复业务。重启后再分析导出的日志。
03 / ROOT CAUSES
五类常见根因
一、VirtIO 驱动兼容问题
CPU 规格变更后蓝屏或死机(BBS 高频案例)
变更 vCPU 核心数后,KVM 为云主机提供新的 CPU 拓扑(核心数、APIC ID 变化)。Windows 启动时沿用之前缓存的 CPU 状态,而 VirtIO 驱动初始化访问 per-CPU 数据结构时因拓扑不匹配而失败。
触发条件:
· 在线修改 vCPU 规格,特别是跨 socket 边界变更(如 1socket 变 2socket)
· Windows Server 2019/2022 + 旧版本 VirtIO 驱动
· CPU 模式为 host-passthrough 或 host-model
处理方案:
· 规格变更使用关机后修改,避免在线变更
· 更新 VirtIO 驱动到最新稳定版本
· 已蓝屏时:通过 XMLHook 临时关闭 VirtIO 后启动,修复后再恢复
性能优化工具导致蓝屏(BBS 已知案例)
特定场景下性能优化工具与系统组件冲突:
· Windows Server 2025 加入 AD 域后重启蓝屏——工具与 AD 认证组件冲突
· 安装工具后鼠标丢失、网络配置丢失
处理方案:
· Windows 2025 + AD 场景:创建 XMLHook 临时关闭 VirtIO,重启后卸载工具,安装兼容版本
· 安装工具前确认版本与云平台兼容
二、存储 IO 阻塞导致 hang 死
特征:
· 云主机 ping 不通,RDP/SSH 无响应
· 云平台监控显示 IO 中断,存储延迟在故障前显著升高
· 控制台可能显示磁盘 IO error
根因:存储池后台执行刷盘等重操作,延迟急剧升高 → 云主机的 IO 请求长时间未完成 → CPU 持续处理 IO 中断,频繁上下文切换 → 资源耗尽,hang 死。
排查:
# 物理机层面
iostat -x 1 5
ceph osd perf
dmesg | grep -i "blocked for more than\|hung_task"
预防:
· 存储池重操作安排在业务低峰期
· 配置存储 IO 延迟告警
· 云主机内降低磁盘超时时间(注册表 HKLM\SYSTEM\CurrentControlSet\Services\Disk\TimeOutValue,默认 60 秒可调至 30 秒)
三、CPU 打满(应用层)
特征:控制台极慢但有响应,查看进程发现 CPU 持续 100%。
常见触发源:
· Windows Update 后台静默安装
· 杀毒软件全盘扫描(计划任务触发)
· 应用程序内存泄漏导致持续 GC
· IIS/数据库等应用层死循环
排查:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
Get-Service -Name wuauserv | Select-Object Status
Get-ScheduledTask | Where-Object { $_.State -eq 'Running' }
四、在线扩容 CPU/内存导致蓝屏
Windows Server 2019 早期版本中,驱动访问超过 64 个逻辑处理器的 NUMA 节点时触发已知 bug。在线扩容后重启即蓝屏。
处理方案:
· 确认 Windows 已安装最新累积更新
· 如无法更新:避免在线扩容,改用关机后修改
· 已蓝屏:回滚规格到原始配置
五、内存耗尽
Windows 内 OOM 表现为系统逐步缓慢直至完全无响应。
排查:
Get-CimInstance Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10
预防:监控云主机内存使用率,阈值告警。对内存密集型应用设置适当的虚拟内存。
04 / PREVENTION
预防配置
启用蓝屏 dump(即使当前未蓝屏也提前配置)
wmic recoveros set DebugInfoType = 1
wmic recoveros set AutoReboot = False
监控基线
05 / CHECKLIST
自查清单
死机时 ☐ 控制台截图保存现场 ☐ 导出系统事件日志(System + Application evtx) ☐ 记录准确时间点,用于对照存储/网络监控 恢复后 ☐ 分析事件日志中死机时点前后的 Error/Critical ☐ 检查蓝屏 dump(%SystemRoot%\Minidump\*.dmp) ☐ 确认 VirtIO 驱动和性能优化工具版本 ☐ 对照存储延迟和 IO 异常 ☐ 确认 Windows Update 和杀毒软件的计划任务
06 / SUPPORT
联系技术支持
死机现场只有一次,日志要在重启前拿到。 排查顺序从驱动到存储再到应用层,规格变更尽量走关机修改。