![spoolsv.exe 消耗所有 CPU 和 RAM 资源](https://linux22.com/image/1228267/spoolsv.exe%20%E6%B6%88%E8%80%97%E6%89%80%E6%9C%89%20CPU%20%E5%92%8C%20RAM%20%E8%B5%84%E6%BA%90.png)
假设安装了 2 台打印机的 Windows 7 x64 安装。系统安装了 8GB RAM。一台打印机是通过 TCP/IP 连接的 Brother 激光 MFC-8220 打印机,另一台是 CutePDF 打印机。
问题:当机器空闲时,它spoolsv.exe
会定期消耗大量内存和 CPU。通常设备处于关闭状态。打开它不会影响 RAM 或 CPU 的使用率。
首先考虑的是,也许之前已经将打印作业发送给了 Brother,但是队列是空的,并且没有作业在等待。
这些屏幕截图没有显示,但定期spoolsv
服务将消耗全部 8GB 并且攀升至使用 95-100% 的 CPU。
两台打印机(一台 Brother 打印机和一台 CutePDF 打印机)各自的队列中都有 0 个文档。
问题:我可以采取什么措施来确保 spoolsv.exe 不会消耗过多的 CPU 和 RAM?
答案1
SPOOLSV 将打印驱动程序加载到其自己的进程中 - 卸载 Brother 打印和驱动程序包(从打印管理中),看看问题是否仍然存在。如果问题仍然存在,则问题出在打印驱动程序上。
如果是打印驱动程序,则需要更改它。我首选的 Brother 打印驱动程序是 BRSCRIPT 驱动程序,因为它非常轻量。但我检查了一下,没有适用于您的 MFC-8220 的 BRSCRIPT 驱动程序。尝试从 Brother 网站获取最新的 Windows 7 64 位驱动程序,或尝试 Windows XP 64 位驱动程序(如果它与 Windows 7 驱动程序包不同)。
如果您认为这是一个“解决方案”,那么有几个人建议使用“直接打印到打印机”。
如果这没有帮助,您可能需要编写脚本,让假脱机服务在开始使用 > 100MB 的 RAM 时重新启动 - 再次,如果您认为这是一个“解决方案”。
如果您决心要妥善解决此问题,请在进程显示高 CPU 时对其进行 XPERF 检查,并查看您在哪里消耗了这些 CPU 周期。如果它在 Brother DLL 中,则向他们发送电子邮件。
答案2
这可能是常见的“损坏的打印文件”问题。检查下面C:\WINDOWS\system32\spool\PRINTERS
是否有任何可能残留的文件。删除所有文件并重新启动打印后台处理程序服务。
答案3
尝试 Windows 7(Vista?)内置的资源监视器。这应该可以帮助您检查是否是磁盘或网络访问的问题。
答案4
我也遇到同样的问题。当使用兄弟 MFC-8440 作为网络打印机时,就会发生这种情况。我们使用 USB 打印机,它可以在网络上使用。驱动程序在本地安装,打印正常。但 CPU 使用率很高,RAM 不断增长。
这在 XP 和 Windows 7 中都存在
在 XP 中,我可以通过选择将文档直接发送到打印机来停止它。它不会将它们假脱机。它是打印机首选项中的一个选项。在 Windows 7 中,当您选择将文档直接发送到打印机时,它会导致打印机崩溃。