Arhiiv

Archive for 11. dets. 2009

Explorer.exe kõrge CPU kasutus

11. dets. 2009 2 kommentaari

Juba mitu nädalat olen täheldanud, et ilma mingisuguse ette hoiatamiseta hakkab arvutil ventilaator valjult käima ja tegumihaldurit vaadates on näha, et explorer.exe kasutab üle poole protsessoriajast (Vista x64). Kuna selline käitumine on häiriv ja kahtlane, otsustasin nädala alguses asja lähemalt uurida. Järgnevalt kirjutan, kuidas seda laadi probleeme analüüsida ja kuidas konkreetset probleemi parandada.

Katse 1

Esimese asjana üritasin kasutada Microsofti (Mark RussinovichiSysinternals tööriistakomplekti autor) soovitatud uurimismeetodit. See on järgmine:

  1. Tuvastada CPU-d kasutav protsess (antud juhul oli selleks explorer.exe)
  2. Kasutada Process Explorerit ja uurida, milline lõim kasutab protsessorit (NB! Process Explorer tuleb käivitada administraatorina, muidu ei saa kõiki teeke uurida)
  3. Vaadata, millega lõim tegeleb ja üritada nii leida lõime tegevuse põhjus.
  4. Peatada lõim
  5. Tappa lõim

Esimene samm sai edukalt tehtud ja explorer.exe täpsema uurimise alla võetud. Process Exploreris saab protsessi lõimi uurida tehes protsessi peal parempoolse hiireklõpsu ja valides “Properties…”. Avanenud aknas tuleb avad leht “Threads”. Seal on näha, et lõim 3196 kulutab enamuse protsessori ajast. Veel on näha, et lõim kasutab hetkel koodi, mis asub SHLWAPI.dll sees. Klõpsates “Stack”, on näha, et tegeletakse sõnede töötlemise ja võrdlemisega.Kahjuks ei ole siit näha, mis selle lõime töö põhjustas. Sellegi poolest valisin “Suspend” ja protsessori kasutus langes kohe tohutult. Ka arvuti kasutamises näis, et probleeme ei tekkinud. Kuna tegemist on siiski süsteemse rakendusega, ei ole lõime peatamine tõenäoliselt ohutu. Seega, tegin katse ja hävitasin lõime (“Kill”). Oma üllatuseks tekkis selle peale kohe uus lõim, mis hakkas samamoodi protsessoriaega sööma. Jätkates lõimede uurimist tuvastasin, et uue lõime tekitajaks on sama lõim, mis tegutseb Windowsi tegumiribaga. Kuna tegumiriba on kasutamise seisukohalt oluline komponent, jäi see katse explorer kontrolli alla saada pooleli.

Katse 2 (lahendus)

Mõned päevad hilje, hakkas taas explorer kummituslikult protsessorit kulutama. Siis tuli aga mulle meelde see, et explorer protsess käivitab ju ka Windows Task Scheduler tööülesandeid. Võtsingi lahti Task Scheduler-i ja näen, et kuus ülesannet on hetkel töös.Filtreerisin vaate viimase tunni jooksul käivitatud tööülesandeid näitama ja tulemus oli juba palju ilusam.Nagu näha, on ainus viimase tunni jooksul käivitatud töö “GoogleUpdateTaskMachine”. Tegemist on nimelt tööga, mis peaks tegelema Google toodetele uuenduste leidmise ja paigaldamisega. Otsustasin katsetada ja selle töö peatada. Töö peatamiseks valisin küljepealsest puust “Task Scheduler Library”.Seal avanesid mul kaks tööülesannet: “GoogleUpdateTaskMachine” ja “Secunia PSI logon task” (arvuti turvalisust hindava tööriista Secunia Personal Software Inspector tööülesanne). Peatasin “GoogleUpdateTaskMachine” paremklõpsates sellel ja valides “End” ja vastates kinnitusele “Jah”.

Selleks, et vältida ülesande taaskäivitumist paremklõpsasin“GoogleUpdateTaskMachine” peal ja valisin “Disable”. Ei möödunud poolt minutitki kui protsessori kasutus normaliseerus ja arvutit taas normaalselt kasutada sai.