背景
我有一台運行 Windows Server 2008 R2 的伺服器,該伺服器上的splwow64.exe
進程似乎存在記憶體洩漏。
據我了解,此進程允許 32 位元應用程式與 64 位元系統上的 64 位元印表機驅動程式進行通信,並且當應用程式完成與印表機的通訊(即列印作業完成時)時,該進程應終止。
研究完這個問題後,我申請了這個微軟修補程式(2815716) 不幸的是沒有結果。
我的問題是這樣的:
當確信所有列印作業都已完成時,安排一項任務在一天結束時自動終止此程序是否是安全且明智的舉措?
註腳
我意識到這種行為表明系統上安裝的特定印表機驅動程式存在根本問題,但是伺服器正在運行一組舊印表機,其驅動程式無法更新。
非常感謝您的時間和建議。
答案1
如果有一個計劃任務每天晚上/早上重新啟動服務,那將是一個更好的主意。
net stop spooler
net start spooler
這個過程是服務的一部分,您不想強制它。
答案2
我似乎已經找到了解決這個問題的方法:
我將 RAM 使用量峰值的時間與發送到各個列印佇列的作業進行了比較,並將問題範圍縮小到一組配置為使用PCL6
驅動程式的 HP Laserjet 印表機。
更換驅動程式似乎PCL5 HP Universal Printer Driver
已經解決了問題。
現在,當發送列印作業時,該splwow64.exe
進程會消耗 250KB-1MB RAM,隨後該進程會成功釋放該 RAM(之前該進程每個列印作業會消耗 65MB-500MB RAM,但當時並未釋放)。
我感謝所有閱讀我的問題並為該主題做出貢獻的人。