一周多前,我在 Dell Precision T5400 上安装了 Windows 10。这是一台相当老旧的电脑,但它有两个物理 4 核至强处理器、32GB 内存和 Crucial 525GB SSD。它启动后速度非常快,我一直用它来编辑视频,并试用内置的新 Linux 子系统。但漫长的启动时间非常不方便。安装时启动需要很长时间,之后每次启动也需要很长时间。实际上,前几次我以为只是在安装更新。我最近开始尝试诊断和修复问题,但我只能将过长的启动时间缩小到预会话初始化阶段。我还注意到,在没有网络的情况下进行安全模式启动也需要同样长的时间。我下载并安装了性能记录器工具,但除了看到它是预会话初始化阶段的问题之外,我不知道下一步该怎么做。如果有人能帮助我找到正确的方向,我将不胜感激。我不确定如何在这篇文章中发布日志,但我很乐意提供一些指导。再次提前感谢。
答案1
要了解 Windows 启动缓慢的原因,您需要安装 Windows 性能工具包,它是Windows 10 SDK。
跑步程序运行环境, 选择第一级,CPU使用率,磁盘IO,文件IO及以下性能场景选择引导. 迭代次数可设置为1并点击开始。
这将重新启动 Windows 并捕获启动期间的所有活动。重新启动后,让倒计时归零。
现在双击生成的 ETL 文件以打开 ETL Windows Performance Analyzer (WPA.exe)
,单击Profiles
-> Apply
->Browse Catalog
并选择文件,FullBoot.Boot.wpaprofile
您将看到以下概览:
这里确实Boot-PreSessionInit-Phase
很慢。
要查看这里是什么慢了,我们需要执行第二步。在 ETL 的当前文件夹中打开 cmd.exe 并运行"C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\xperf.exe" /tti /tle -i Trace.04-27-2017.08-39-12.Boot_1.etl -o summary_boot.xml -a boot
。
打开summary_boot.xml
这里你也会看到它PreSMSS
很慢。
此子阶段会发生什么PreSMSS 子阶段从内核被调用时开始。在此子阶段中,内核初始化数据结构和组件。它还启动PnP 管理器,它初始化在 OSLoader 阶段加载的 BOOT_START 驱动程序。当 PnP 管理器检测到设备时,它会加载并初始化设备的驱动程序
视觉提示 PreSMSS 大约在“正在加载 Windows”启动画面出现时开始。PreSMSS 结束时没有明确的视觉提示。
因此,加载设备驱动程序是导致启动缓慢的原因。但我只看到 ACPI 系统,而不是真正的驱动程序。
在 WPA 中,我看到SYSTEM 进程的 CPU 使用率过高,当查看CPU Usage (Sampling) graph
:
这也表明启动设备会导致高 CPU 使用率和 ACPI 调用。
现在我们拖放CPU 使用率(精确)图表到分析窗格并分析等待情况。
在这里我可以看到 start 调用ntoskrnl.exe!IopInitializeBootDrivers
和 next ataport.SYS!FdoPowerUpDevice
。因此 Windows 尝试启动 ATA/IDE 设备。查看您的系统硬件,我发现您使用的是 DVD 驱动器PLDS DVD+-RW DH-16A6S
。这是 IDE 驱动器吗?如果是,请尝试断开连接并查看启动是否更快。