最近我注意到我们的一些机器变得迟缓,主要是在启动后。使用时Resource Monitor
,我检测到 PID 为 4 的系统进程的磁盘访问过多。按照一些提示,我禁用了系统卷信息文件夹上的防病毒软件,希望这会有所帮助(我不想禁用系统还原)。
然而,PID 4 似乎正在访问一切。当运行一个简单的 ZIP 文件解压时,我可以看到 WinRAR 每秒从文件中读取几百 KB,但 PID 4 每秒从同一个文件中读取几十 MB。取消操作后,PID 4 继续访问文件约 30 秒,每秒读取许多 MB。这不是资源监视器错误,因为磁盘显然处于活动状态,并且一旦资源监视器显示 PID 4 最终处于休息状态,它就会停止。
为什么这个神奇的进程可以访问其他每个进程访问的所有内容?
我正在使用 AVG 防病毒软件。禁用它并没有改变这种行为/
这里发生了什么?
答案1
这是一个老问题,但我遇到了这个问题,对我来说是 SuperFetch。我尝试了所有能找到的关于 PID 4 硬盘使用率过高的方法,其中一些方法有用。将 RAM 从 4GB 升级到 8GB 只会使问题更加明显 - RAM 使用率低,没有分页,但我的笔记本电脑启动后硬盘亮了大约 10 分钟。
长话短说,有一个注册表设置可以控制 SuperFetch 的适当级别。您可以在下面看到 EnableSuperfetch 值现在设置为 1,这似乎是“预取所有可执行文件和库”。默认值为 3,这似乎意味着“预取所有可执行文件、库和文档”。我有很多文档,所以我认为这花的时间太长了。打开的每个文档都是 SuperFetch 必须“分析”的另一个文档,以了解您如何使用它。
有问题的注册表项/值是:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\EnableSuperfetch
到目前为止,唯一的缺点是我的 Outlook 文件夹需要多花几秒钟才能打开,而一些常用文档(如 MS Project 文件)则需要更长时间。但这些延迟与我之前遇到的磁盘问题相比微不足道!
答案2
许多系统服务(我不是指 Windows 服务)在 PID 4(“系统”进程)下运行。每次打开文件时,都会触发一系列后台机制,例如虚拟内存管理器将文件缓存在内存中、在内存中移动其他内容、处理页面错误等。该活动与最初访问该文件的进程(例如 WinRAR)的磁盘活动是分开的。
尽管如此,你所描述的情况在我看来仍然不是正常行为。当访问文件时,你应该会看到系统进程的磁盘活动快速增加,然后它会很快回到 0 - 只需几秒钟。
我使用 Windows 资源监视器在自己的机器上做了一些测试,看到了类似的行为。我认为我们看到的是资源监视器向我们展示了某种缓慢下降的滚动平均值。
尝试使用其他工具查看 PID 4 磁盘活动,例如Sysintenals 的进程浏览器。我得到的印象截然不同,因为系统进程的读取增量和读取字节增量似乎返回到 0很多比通过 ResMon 观看时更快。
编辑:如果不是这样,那么我认为需要进行更深入的分析才能回答这个问题。例如,您可以使用 fltmc.exe 列出当前加载的文件系统过滤驱动程序,而 kernrate.exe 可以帮助您隔离导致磁盘 I/O 过高的模块。
答案3
系统进程由 Windows 更新使用。如果您选择自动安装更新,则可能是您的系统正在安装 Windows 软件。如果您运行 Windows 更新并尝试安装更新,您将收到一条消息,提示您无法安装,因为 Windows 当前正在更新系统。
将 Windows 更新更改为无需手动操作即可下载和安装,并等待当前安装完成。
答案4
当我在寻找系统进程 4 为何消耗如此多的读/写流量的答案时,我偶然发现了这个帖子,因此将这个答案发布在这里。
当用户映射驱动器或通过 UNC 路径访问共享时,尤其是目录结构规模较大的共享时,会突然收到来自主机服务器的大量连续接收流量。通常我会看到 100-300k,但只要您在导航窗格中展开,它就会猛增到 20,000k 以上。
最终禁用了资源管理器中的自动扩展到当前文件夹选项,并且流量消失了。
http://www.sevenforums.com/tutorials/1014-navigation-pane-automatically-expand-current-folder.html