spoolsv.exe using 99% of cpu - the solution

printer ရွိတဲ႔ သူ ေတာ္ေတာ္ မ်ားမ်ားမွာ ျဖစ္ေလ႔ရွိတဲ႔ ျပႆနာ တစ္ခု က တစ္ခါတစ္ေလ မွာ စက္က အလိုလိုေနရင္း သံုးရတာ ေလးလံလာလို႔ Task manager မွာ ၾကည္႔လိုက္တဲ႔ အခါ spoolsv.exe က CPU ရဲ႕ % အေတာ္မ်ားမ်ား တစ္ခါတစ္ေလ 99% ေလာက္ နီးပါးကို သံုးေနၾကတာကို ေတြ႔ရတတ္ပါတယ္။ အေတာ္မ်ားမ်ားက အဲလို ျဖစ္လာရင္ spoolsv.exe ကို ျဖဳတ္ခ်ပစ္လိုက္တတ္ပါတယ္။ အဲလို ျဖဳတ္ခ်လိုက္ရင္ အဲဒီ ခဏေတာ႔ ေကာင္းသြားတာေပါ႔ေလ။ ေနာက္တစ္ခု windows တက္လာရင္ ျပန္ဒုကၡေပးပါေလေရာ။ ဒီေတာ႔ တစ္ခ်ိဳ႕က အဲဒီ service ေလးကို disable ေပးထားလိုက္တတ္ပါတယ္။ ဒီေတာ႔ အဲလို ျပႆနာ မျဖစ္ေတာ႔ေပမယ္႔ printer ကိုျပန္သံုးခ်င္တိုင္း အဲဒီ service ကို ျပန္ Automatic setting ေျပာင္း start ျပန္လုပ္နဲ႔ အဆင္မေျပပါဘူး။ တကယ္႔ ျပႆနာ အစစ္က တစ္ျခားေနရာမွာပါ။ တကယ္ေတာ႔ အဲလိုျဖစ္ရာတာဟာ မ်ားေသာအားျဖင္႔ bad spooler files ေတြေၾကာင္႔ ျဖစ္ရတာပါ။ အမ်ားဆံုးက လိုကယ္ နက္၀က္ ခ်ိတ္ထားရင္ တျခားကြန္ျပဴတာေတြက လာတဲ႔ ဖိုင္ေတြေၾကာင္႔ ျဖစ္ပါတယ္။ (တျခားလူေတြက ကိုယ္႔ကို စိတ္ညစ္ေအာင္လုပ္ခ်င္လည္း အဲဒီ trick ေလး သံုးခ်င္သံုးနိုင္ပါတယ္။ :P) မလိုအပ္ရင္ printer ကို ရွယ္ရာ မေပးထားပါနဲ႔။ အဲဒီ bad spooler files ေတြ ဟာ C:\WINDOWS\system32\spool\PRINTERS ဆိုတဲ႔ Folder ထဲမွာ ရွိပါတယ္။ 0020.SHD, 0020.SPL စတဲ႔ ဖိုင္မ်ိဳးေတြ ျဖစ္ပါတယ္။ အဲဒါေလးေတြကို ရွင္းထုတ္လိုက္ရင္ အိုေကသြားမွာပါ။

ျပႆနာေျဖရွင္းနည္း



  1. Print spooler service ကို kill လုပ္ပါ။




  2. Printer share မ်ား ရွိေနပါက ျဖဳတ္ပစ္ပါ။




  3. C:\WINDOWS\system32\spool\PRINTERS ဆိုတဲ႔ Folder ကိုသြားပါ။ (ျမန္ေအာင္ run ထဲကို အဲဒီ လင္႔ရိုက္ထည္႔၊ ကူးထည္႔ျပီး သြားလုိ႕ ရပါတယ္။)။ ရွိေနတဲ႔ ဖိုင္ေတြ delete လုပ္ပါ။




  4. Print spooler service ကို start ျပန္လုပ္ပါ။


အဆင္ေျပသြားပါလိမ္႔မယ္။



ကဲ တလက္စတည္း ၾကံဳတုန္း short cut တစ္ခ်ိဳ႕ ကို ေျပာျပပါမယ္။ service တစ္ခုကို ျဖဳတ္ခ်ခ်င္တယ္ဆိုရင္ ပံုမွန္က task manager မွာ အဲဒီ process ကို right click လုပ္ျပီး End process လုပ္လိုက္ရင္ရပါတယ္။ ဒါေပမယ္႔ အဲဒါကို script ေရးခ်င္တဲ႔ သူမ်ားအတြက္ နည္းလမ္းေလးတစ္ခ်ိဳ႕ ေျပာျပပါမယ္။ command prompt ကေန services ေတြကို start, stop လုပ္လို႔ ရပါတယ္။ command က net start နဲ႔ net stop ျဖစ္ပါတယ္။ အသံုးျပဳပံုက net start "service name" နဲ႕ net stop "service name" ျဖစ္ပါတယ္။ ဒီေနရာမွာ service name ဆိုတာက ကုိယ္ kill လုပ္ခ်င္တဲ႔ service name ျဖစ္ပါတယ္။ ခု ကၽြန္ေတာ္တို႔ kill လုပ္ခ်င္ေနတဲ႔ service က print spooler ျဖစ္ပါတယ္။ မွတ္ခ်က္- spoolsv.exe မဟုတ္ပါဘူး။ မၾကာခဏ မွားတတ္ပါတယ္။ ေအာက္က ပံုမ်ားမွာ လက္ေတြ႕ အသံုးျပဳပံုကို ျမင္နိုင္ပါတယ္။





မိမိ kill လုပ္ခ်င္ေနတဲ႔ service name ကိုသိဖို႔ လိုအပ္ပါတယ္။ မသိေသးရင္ ပထမဆံုး administrative tools ထဲက services ကိုသြားပါ။
ျမန္ျမန္ ေရာက္ခ်င္တယ္ ဆိုရင္ေတာ႔ ကားစီးသြား အဲေလ မွားလို႕ Run command ကေနသြားပါ။ services.msc ဆိုရင္ ေပၚလာပါလိမ္႔မယ္။အဲဒီမွာ ကိုယ္ kill လုပ္ခ်င္တဲ႔ services နာမည္ေတြကို မွတ္ထားလိုက္ပါ။
command ေတြကို သံုးတဲ႔အခါ kill လုပ္မယ္႔ service name ကို " " လုပ္ဖို႔ မေမ႔ပါနဲ႔။ အထက္က solution ကို bat file ေလးလုပ္ထားရင္ ကလစ္ တစ္ခ်က္နဲ႕ လက္မေညာင္းပဲ ေျဖရွင္းလို႔ ရပါျပီ။

ဘယ္လိုလုပ္ရမလဲဆိုေတာ႔


  1. notepad ကို ဖြင္႔ပါ




  2. ေအာက္ပါ စာသားမ်ားကို ရိုက္ထည္႔ပါ။




  • net stop "print spooler"




  • del C:\WINDOWS\system32\spool\PRINTERS\*.* /q




  • net start "print spooler"



  1. (/q ကို ဒုတိယလိုင္းမွာ သံုးထားတာက delete all လုပ္ထားလို႔ confirmation ေတာင္းလာရင္ Y/N ေပးမေနရေအာင္ တစ္ခါတည္း တိတ္တိတ္ေနဖို႕ ေျပာထားတာပါ။)ေအာက္ပါပံုအတုိင္း bat file extension (.bat) ျဖင္႔ file ကို save လုပ္ပါ။ ဒီဥပမာမွာေတာ႔ solv-spoolv.bat လို႕ နာမည္ ေပးထားပါတယ္။ Save as type ေနရာမွာ All file ကိုေရြးဖို႔ မေမ႔ပါနဲ႕။
    ဒါဆို ေအာက္မွာ ျပထားတဲ႕ ပံုထဲကလိုမ်ိဳး bat ဖိုင္ေလး တစ္ခု ရလာပါမယ္။ ၄င္း ကို double click လုပ္ျပီး run လို႔ ရပါျပီ။ edit လုပ္ခ်င္ရင္ေတာ႔ right click လုပ္ျပီး Edit ကိုေရြးလို႔ ျပင္ဆင္နုိင္ပါတယ္ခင္ဗ်ာ။
    ဒီေနရာက အဲဒီဖိုင္ေလးကို ရယူပါ။

    ပီဒီအက္ဖ္ PDF ဖိုင္နဲ႔ ဖတ္လိုတယ္ဆိုရင္ ဒီေနရာ မွာ ရယူနိုင္ပါေၾကာင္း ခင္ဗ်ား။

    အကိုးအကားမ်ား




Please Share This Post

Share on Facebook Plus on Google+

2 ေယာက္က ဒီလိုေျပာတယ္

ေက်းဇူးပဲဗ်ိဳ႕
Linux မွာ သံုးတဲ႕ ပံုစံမ်ိဳးပဲ .
အရင္က သတိ မထားမိလိုက္ဘူး
အခုေတြ႕ေတာ့မွပဲ သတိထားမိေတာ့တယ္
ေက်းဇူး
:)

နာက္ထပ္ သတိထားမိတာတစ္ခုက printer မရွိလဲ တျခား spoolsv.exe ကို ယူသံုးတဲ႕ Adobe acrobat pro.. စတဲ႕ ေဆာ႔ဖ္၀ဲလ္ ေတြ သံုးထားရင္လဲ ဒါမ်ိဳးျဖစ္တတ္တယ္ခင္ဗ်ာ။ သူက Virtual printer လုပ္ျပီး pdf ေျပာင္းတယ္ ထင္ပါတယ္။