You are here

Svchost.exe e CPU al 99% ? Processi e servizi Windows

Inviato da giovanninews on Sab, 27/08/2011 - 16:47

svchost con cpu al 99% in windows Svchost.exe è tra i processi di Windows quello che potrebbe anche essere definito "l' illustre sconosciuto"; sicuramente tutti gli utenti Windows lo conoscono perchè lo vedono dal task manager, spesso in più esecuzioni.

E' quì che nasce la prima domanda: "E' normale che svchost.exe sia eseguito sotto Windows più di una volta ?". La risposta è SI !.

Ma a volte notiamo anche che uno dei processi svchost.exe occupa la CPU al 99% per diverso tempo, rallentando molto l' avvio di Windows. E' normale ? secondo me NO.

Voglio innanzitutto precisare che non sono un esperto, ma solo un semplice curioso e come tutti i curiosi ho provato a documentarmi un pò sui processi di Windows svchost.exe; da ciò nasce questo articolo e mi scuserete quindi se posso a volte dire qualcosa di inesatto.

Informazioni su Svchost, processi e servizi di Windows

"Svchost.exe è un nome di processo host generico per servizi eseguiti dalle librerie di collegamento dinamico (DLL).

Il file Svchost.exe, che si trova nella cartella %SystemRoot%\System32, all' avvio del computer verifica la porzione del Registro di sistema relativa ai servizi al fine di redigere un elenco di servizi da caricare".

In pratica, Windows, durante la fase di avvio del sistema, sia per rendere disponibili le funzionalità del sistema operativo che le funzionalità del software installato nel sistema, avvia dei servizi.

Potrebbe però succedere che, per qualche motivo, uno o più servizi potrebbero essere diventati difettosi; è per questo che i servizi sono riuniti in gruppi ed avviati separatamente, ma il processo che avvia ogni gruppo di servizi si chiama sempre svchost.exe, per cui, sul task manager di Windows, vedremo più processi svchost.exe in esecuzione.

La scelta di Windows di avviare i servizi raggruppandoli separatamente è quindi una scelta più che comprensibile, in quanto, un servizio difettoso (perchè ad esempio attaccato da un virus) porterebbe ad un malfunzionamento di quel gruppo di servizi; se i servizi non fossero raggruppati, si avrebbe invece un crash di tutto il sistema.

I gruppi dei servizi avviati da Windows sono raggruppati nel registro di configurazione sotto la chiave HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost. Dovrebbero essere avviati da Windows i gruppi che contengono al loro interno dei valori DWORD.

Sul mio P.C. ho 8 gruppi che contengono valori ed infatti ho 8 processi svchost.exe avviati. Un numero di processi svchost.exe avviati, diverso dal numero dei gruppi con valori è, secondo me, sospetto.

Potrebbe inoltre succedere che un processo svchost.exe usa la CPU al 99% o al 100%, bloccando praticamente il sistema, sia per un breve periodo di tempo che permanentemente.

Un blocco per un breve tempo indica che qualche servizio caricato non funziona a dovere, mentre un blocco permanente indica che ... siamo proprio fritti.

Il file svchost.exe è uno dei file di sistema di Windows maggiormente attaccati da virus e codici maligni; appunto per questo necessita una maggiore attenzione da parte nostra.

Un processo svchost.exe che usa la CPU al 99% non significa che siamo affetti da virus, ma certamente è necessario indagare in maniera più approfondita.

Il file svchost.exe, con il task manager, è stato inserito in Windows già con Windows 98 ed ha continuato la sua evoluzione con Windows 2000, Windows Server, Windows XP e Windows Vista, sia quindi con sistemi a 32 bit che con sistemi a 64 bit.

Da Microsoft troviamo una serie di indicazioni su svchost.exe che ci aiutano a capirlo meglio. La pagina https://support.microsoft.com/it-it/kb/250320 è valida per svchost.exe in Windows 2000, la pagina http://support.microsoft.com/kb/314056/it è invece valida per svchost.exe in Widows XP Professional (non per XP Home Edition), mentre la pagina http://windows.microsoft.com/it-IT/windows-vista/What-is-svchost-exe è valida per svchost.exe in Widows Vista.

Da queste pagine possiamo rilevare che con Windows XP Professional e Windows Vista possiamo, attraverso il task manager di Windows, visualizzare nel dettaglio i diversi servizi avviati per ogni processo svchost.exe in esecuzione. E' possibile quindi sapere, con queste versioni di Windows, qualcosa in più sui servizi avviati e magari capire quale di questi processi può crearci problemi.

La procedura per Windows XP Professional descritta è: 

  1. Fare clic sul pulsante Start sulla barra delle applicazioni di Windows, quindi scegliere Esegui.
  2. Nella finestra di dialogo Apri digitare CMD, quindi premere INVIO.
  3. Digitare Tasklist /SVC, quindi premere INVIO.

In pratica questa procedura ci permette di sapere il PID del processo svchost.exe e l' elenco dei servizi da questo avviati.

La procedura per Windows Vista è ancora migliorata.
Per visualizzare i servizi attualmente in esecuzione in svchost.exe:

  1. Per aprire Gestione attività, fare clic con il pulsante destro del mouse sulla barra delle applicazioni e quindi scegliere Gestione attività.
  2. Fare clic sulla scheda Processi.
  3. Fare clic su Mostra i processi di tutti gli utenti. Autorizzazioni di amministratore necessarie se viene chiesto di specificare una password di amministratore e di confermare.
  4. Fare clic con il pulsante destro del mouse su un'istanza di svchost.exe e quindi scegliere Vai a servizi. Nella scheda Servizi verranno evidenziati i servizi associati al processo.

Quindi le diverse versioni di Windows migliorano le informazioni per l' utente sul processo svchost.exe, aiutando maggiormente a capire qual' è il servizio che ci causa problemi.

Ma è sufficiente ? E per le versioni inferiori a Windows XP Professional ?