https://live.sysinternals.com/Procmon.exe
https://live.sysinternals.com/Procmon64.exe
用process monitor可以抓开机过程,对开机恒慢的问题(每次开机都慢),比较方便定位
正常开机过程如上图,从smss.exe第1次出现到csrss.exe第1次出现是很快的。Windows启动过程:os loader(winload.exe ntoskrnl.exe ) → 加载驱动 → smss.exe → autochk.exe → smss.exe → csrss.exe → smss.exe → wininit.exe → → csrss.exe → winlogon.exe → services.exe → lsass.exe → svchost.exe → 登录就绪(LogonUI.exe、dwm.exe )
问题机器A的日志如下,
从开机(事件ID12)到日志服务启动(事件ID 6005)耗费5分21秒,而大部分时间是耗费在启动前期的。smss.exe → autochk.exe → smss.exe → csrss.exe 这个过程中,从autochk.exe → smss.exe耗费了将近5分钟,这个过程在windows徽标界面转圈。
问题机器B的日志如下,从smss.exe → autochk.exe耗费了1分钟,这个过程在windows徽标界面转圈。
以管理员身份打开CMD命令行运行以下两条命令行开启高级选项
bcdedit /set {default} advancedoptions on
bcdedit /set {default} recoveryenabled off
这样设置完,以后重启机器就会停在等待选择的界面,需要从VNC登录按F8选择才能进入系统。
从安全模式进入不慢,从网络安全模式进入慢,说明开机慢跟"网络"有关,即跟"网卡"有关。由于微软对不同系统在虚拟化方面的优化程度不同,大胆2分法尝试不同Windows系统对比,server2016/2019/2022/Win10/Win11,最终发现只在server2016上出现问题,需要优化网卡驱动。
如果测试跟网卡无关,再结合磁盘监控排除下磁盘IO情况,剩下的基本就是虚拟化层面的问题了。