背景
我有一台运行 Windows Server 2008 R2 的服务器,该服务器上的splwow64.exe
进程似乎存在内存泄漏。
我理解此过程允许 32 位应用程序与 64 位系统上的 64 位打印机驱动程序进行通信,并且当应用程序完成与打印机的通信时(即打印作业完成时),该过程应终止。
在研究了这个问题之后,我申请了此 Microsoft 修补程序(2815716)不幸的是无济于事。
我的问题是:
当确信所有打印作业都已完成时,安排一项任务在一天结束时自动终止此过程是否是一个安全而明智的举动?
脚注
我意识到这种行为表明系统上安装的特定打印机驱动程序存在潜在问题,但是服务器正在运行一组无法更新驱动程序的古老打印机。
非常感谢您花时间和建议。
答案1
制定一个计划任务来每晚/早上重新启动该服务将是一个更好的主意。
net stop spooler
net start spooler
该过程是服务的一部分,您不想强制执行它。
答案2
我似乎找到了解决这个问题的方法:
我将 RAM 使用率峰值的时间与发送到各个打印队列的作业进行了比较,并将问题缩小到配置为使用驱动程序的一组 HP Laserjet 打印机PCL6
。
将驱动程序更改为似乎PCL5 HP Universal Printer Driver
已经解决了该问题。
现在,在发送打印作业时,该splwow64.exe
过程会消耗 250KB-1MB 的 RAM,然后该过程会成功释放这些 RAM(以前,该过程每个打印作业会消耗 65MB-500MB 的 RAM,但当时并没有释放这些 RAM)。
我感谢所有阅读我的问题并为此主题做出贡献的人。