Virtual machine che consuma la CPU in Idle?

Ieri mi e’ capitato di accorgermi che la mia virtual machine (Windows 7 x64 che gira dentro il solito VirtualBox), in idle, consumava piu’ CPU che durante il normale utilizzo!

Credevo fosse un problema di driver della VM, invece era colpa di mscorsvw.exe. Questo servizio e’ schedulato per girare nei momenti, appunto, di idle del sistema, e il suo scopo e’ quello di compilare in background le librerie del framework .NET di Microsoft.

Quindi se avete installato qualche .NET framework, Visual Studio oppure SQL Server (sia Standard che Express) puo’ darsi che stia “lavorando per voi”.

Il file che gescisce questi processi si chiama

NGEN.exe. Si trova in C:\Windows\Microsoft.NET\Framework\v2.0.50727 (ma in Windows 7 e’ solo un alias per quello che si trova anche sotto la directory \V4.xxxxxx ).Andate quindi in quella directory (con un prompt dei comandi che abbia privilegi di amministratore) e digitate

NGEN executequeueditems

Sappiate che ci mettera’ un po’ di tempo, a seconda di quanti CLR deve ancora compilare.

Per vedere lo stato dei lavori digitate:

NGEN queue status

E infine per vedere il log,

NGEN display

2 risposte a Virtual machine che consuma la CPU in Idle?

  1. Alberto scrive:

    Ottimo articolo! Non sapevo dell’esistenza di questa utility:)

    Volevo dirti però che il comportamento di NGEN è stato modificato nel .NET 4 (e da quello che scrivi tu hai già installato la versione preliminare). Quindi il comportamento da te manifestato non è generalizzabile (sul mio PC con win 7 infatti il servizio è disabilitato).

    Guarda per esempio questo articolo per maggiori informazioni:
    http://blogs.msdn.com/clrcodegeneration/archive/2009/05/03/Improvements-to-NGen-in-.NET-Framework-4.aspx

    Che ne pensi?

  2. macgix scrive:

    Mah c’è da dire che il mio sistema è stato installato e successivamente sono state migrate delle impostazioni da una installazione di XP precedente, quindi può anche essere che alcune chiavi di registro fossero “sporche”, tuttavia eseguire il comando come ho scritto mi ha risolto il “problema” (che in realtà era un comportamento previsto, ma in quanto VM era molto scomodo che mi consumasse la CPU della macchina host!!) e ho quindi pensato di postarlo🙂

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: