为什么磁盘清理占用这么多时间和 CPU?

为什么磁盘清理占用这么多时间和 CPU?

只是一个好奇的问题。磁盘清理已经占用了我一个核心的 100% 很长一段时间,并且仍在继续。似乎花费了很多时间,尤其是在 Windows 更新清理上。

不太明白为什么删除文件会是一项如此繁重的工作。尤其是它已经花费了大量时间来计算可以删除的内容。

为什么磁盘清理会占用这么多时间和 CPU?它做了什么,为什么这么耗时?

四个核心中有两个达到最大限度

答案1

Windows 通过删除替换的更新并压缩无法卸载且未使用的文件来压缩 WinSxS 文件夹。这会占用大量 CPU 能力,这就是您看到 CPU 使用率高的原因。

你可以使用 xperf/WPA 分析 CPU 使用率来验证这一点。

答案2

我可以确认 Windows 更新清理占用了几乎 100% 的 CPU 使用率,这全都与 WinSxS 压缩和更新的重新集成有关:

Windows 清理 100% CPU 使用率

Windows 安装后我第一次开始清理,花了 2 个小时才完成 50%。从图中你可以看到,一开始从磁盘读取大量小文件(第二张图),然后压缩时 CPU 使用率达到 100%,等等。

答案3

缓解此问题并加快“磁盘清理”的“Windows 更新清理”阶段的一种方法是暂时为进程管理器在所谓的“清理”活动持续期间完成此过程。

在里面任务管理器在“详细信息”窗格中,找到TiWorker.exe并右键单击以显示弹出菜单。对于“设置优先级”,请选择“高于正常”,甚至“高”。对我来说,这增加了TiWorkerCPU 活动(从平均约 16% 增加到其最大潜力 25%(在 4 核机器上)。

在此处输入图片描述

除了微不足道的加速(以及可能带来的成就感)之外,几乎没有什么可以做的,因为显然“Windows 更新清理”的编码方式是,由于某些未知原因,逐个文件进行,导致整体工作严重受磁盘限制。

而且,要知道这个过程很可能不是挂起,并且确实有一天会完成。要验证这一点(并在此烦人的等待时间内进一步分散您的注意力),您可以检查资源监控(运行“resmon.exe”)。

答案4

The Old New Thing 的 Raymond Chen 发布了对此的解释,特别是有关 Windows 更新清理的内容。

https://devblogs.microsoft.com/oldnewthing/20200922-00/?p=104252

基本上,这是一次深度清理,删除不再引用的组件。这是在正常维护计划中发生的,但磁盘清理会绕过维护窗口和自我设定的时间限制。

Windows 更新清理还会检查系统是否能从系统文件压缩中获益。为此使用的压缩算法旨在使解压速度快,但代价是使用大量 CPU 时间来执行压缩。

昂贵的数据压缩占用了 CPU,并导致清理磁盘空间的时间很长。

相关内容