5

Suddenly, on a Windows Vista Business workstation I manage, the Windows print spooler service is consuming over 1GB of memory.

I got the call this morning that the user could not print. I discovered all printers were missing from the Printers applet in Control Panel. I rebooted the machine, and at first the printers were still missing, but after a few minutes (and much banging my head against the wall) they suddenly appeared.

I stopped worrying about it until later today it happened again to the same workstation.

To my knowledge, nothing has changed on the computer. No new printers have been added, no new print drivers would have been installed, and no new software is being used.

I tried clearing out the spooler folder (C:\Windows\System32\spooler\printers) which did have four print jobs from this morning, but the problem persists after restarting the spooler service. When starting the service, it starts out using 824 KB of memory, then after about 20 seconds it starts creeping up about 10MB each second until it stabilizes around 1.8GB.

Update

Right now I'm deleting printers one-by-one and restarting the spooler between. (This is loads of fun because every time I restart the spooler, I have to wait for the spooler to consume 1.8GB again before I can delete the next one). All the real printers have been deleted, leaving only Fax, the XPS printer, and a Quicken PDF printer. I'm trying to remove all drivers and found there is a driver for a printer we no longer use that refuses to delete. It says the printer is in use. The printer is an HP Color LaserJet 3500.

I've tried every solution I can find to delete that print driver (rename the driver unidrv.dll then restart the spooler, reboot, etc.) My next step is to drive down there and boot in safe mode and try to delete it in that state, but any other way that saves me the drive would be fantastic.

2 Answers 2

1

I would think it is a bad print driver that has been loaded into the spool process. Try deleting the printers one at a time, restarting the spooler service and watching the memory usage.

You may also want to investigate something like Process Monitor and see if it will you see DLLs that have been loaded by the processes (look for the drivers) and if it can identify the memory allocated by the DLL.

1
  • I need to remember to use Procmon more often! I saw thousands of entries hitting C:\Windows\System32\spool\Servers, and there were hundreds of pre-rendered print jobs in there waiting to send to a network printer. Stopped the print spooler, deleted them, and restarted, and all is well. Thank you! Apr 22, 2010 at 1:30
0

Stop the spooler service, kill the process. Delete everything in C:\WINDOWS\system32\spool\PRINTERS. Set the printer settings to print RAW and directly to the printer.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .