Printer Server Driver Faulty Driver

Everyone, I have a fully updated Windows Server 2008 R2 that is functioning as the print server for ±100 users. I have several Kyocera, HP, and Fax printers that are managed using the "Print and Document Services" role. This server is a VM that lives in a VMware ESX 4.1 environment.

The issue:  This server has been working great for several months now. However, lately, the processor cycles are consistently running at 75~95%.

Observation:  When I stop the print spooler service, the processor activity drops substantially.  If I reboot all of the workstations then reboot the server, the processor activity drops to almost nothing.  As soon as users begin printing, the processor creeps up.

Steps taken:  I have stop/started the print spooler, updated to the latest print drivers, updated Windows Server to SP1.

Normally I would uninstall all of the printers then go from there. However, each user is assigned a "printer box" in their printer preferences.  Unfortunately, the Kyocera drivers are not "Group Policy" friendly and the printer box has to be set manually (we haven't been able to locate anything in the registry, ini files, etc.)

Question:  How can I troubleshoot the server/print drivers in order to locate the faulty driver?  

Thanks a bunch,

Who is Participating?
You mention HP printers - are you using the UPD?  If so have you ensured that you are running the latest version?  (we've had loads of print spooler issues with earlier versions of the HP UPD)

The CPU cycles decrease when the spooler service is stopped.

To confirm is this a general CPU usage decrease or are you specifically referencing the spoolsv.exe process?

When it next happens insteand of cycling the server off/on try running:

taskkill /f /im spoolsv.exe
net start spooler

This kills the running Print Spooler service (stopping the process gracefully will not work if the the process is hanging) and then restarts the service.  

What makes you think driver is at fault? In case of HCL driver ask Microsoft for support.
Stop spooler, clean spool area (directory where there are lots of *.SP[ld] files start it again.
Use sysinternals contig.exe against spool directory
NatRider65Author Commented:
I failed to mention that I had already checked the Print Spooler folder. There were only 2 files in there, and the dates were current, but I deleted them anyway. My apologies.

My inclination toward a printer driver was precipitated by the fact that:

The CPU cycles decrease when the spooler service is stopped.
The spool service on the workstations (that I checked) was creating high CPU cycles.
After a reboot of the server and all of the workstations, the CPU cycles are "normal"
As more and more users begin printing, the CPU cycles begin creeping higher

That being said, let's look at this a different way:  

If it is not a faulty print driver, what would be causing high CPU cycles, yet match the symptoms listed above?

I'm open to any suggestions.

Has Powershell sent you back into the Stone Age?

If managing Active Directory using Windows Powershell® is making you feel like you stepped back in time, you are not alone.  For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why.

Printer driver on server and workstation is not active inside spoolsvc process, driver files are simply shared to users .
I would suspect 3rd party print processor or port driver
For sake of experiment change all printers to use microsoft TCPIP ports only and WinPrint RAW processors only. This is requirement for spooler on windows cluster btw.
NatRider65Author Commented:
Thanks for all of the replies. I apologize for the delay in responding.

As mentioned in my first post under Steps Taken, I stopped and started the "spoolsv.exe" process. While that service was stopped, I saw a substantial CPU usage decrease. I have the VM set to 3 processors.  All 3 sre avg. 80-95%. When I stopped the spool service, CPU's 2 and 3 went to 0-ish,  and CPU 1 went to 25-45% usage.The largest user of CPU was the spoolsv.exe service.

All printers are using standard Microsoft TCP/IP ports and set to RAW.

I did notice that there is a TPVM "ThinPrint Print Port for VMware".  Could that be an issue?

Unused ports are not a root of a problem.

Also setting spool settings to "print after last page is spooled" does not try to intermix pages from two documents

Also Page Protection options take a lot of CPU.
NatRider65Author Commented:
Here's the latest:

I've checked several WinXP and Win7 workstations, and the spoolsv.exe process is using high CPU cycles.  I ended that process (on each workstation) and the CPU cycles dropped to almost zero.

On the server: I had several error events in the logs. The source was "PrintService", EventID was "337", "The print queue could not be found on domain It must have been deleted from the Active Directory directory service. Windows will attempt to republish the print queue. Error: 2116"

I did some research on this error and it was suggested that I remove the printers from AD by unchecking the "List in the Directory" on the Sharing tab of the printer. I did this and it seems that the errors have subsided on the print server.

However, the CPU cycles are still very high.

Any more ideas?

On a side note, I'm still now quite sure about the EE points system.  Is this question worth more points?  I want to be fair.
Is CPU used by spoolsv or by something else?
Your ends somehow do not add up. You end the process and it still consumes CPU time? Does not make a sense.
Can you run proceexp.exe from sysinternals to find where the CPU time goes?
If your AV scans spool files just exclude spool directories from it. No virus in printer data files.
NatRider65Author Commented:
When did I say "I end the process and it still consumes CPU time?" How could a non-running process consume CPU time anyway?

Getting back to my CPU issue, I put together a quick script using pskill from PStools. I ended the "spoolsv.exe" process on all of my workstations, and the CPU usage on the server went to 0%. Flatline.  I did not reboot nor end any processes on the server, only on the workstations.
killing service process leaves spool files behind. please restart service instead.

>and the CPU cycles dropped to ALMOST zero
NatRider65Author Commented:
Restart the service where--on the server or the workstations?
NatRider65Author Commented:
So is this the end?

Thanks anyway to all of you that responded.

With your way of killing processes you generate garbage in spool directories KNOWINGLY.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.