For those of you with high idle CPU usage

Discussion in 'Windows Virtual Machine' started by sniggle, Jun 30, 2012.

  1. sniggle

    sniggle Bit poster

    Messages:
    3
    This has been touched upon in this thread but I figured it might be helpful to have a dedicated post.

    If you do a fresh install of Windows and complete all of the Windows Updates, you'll notice that the Parallels process (because of Windows) will start maxing out your CPU whenever you leave Windows alone for a few minutes. You'll go over to the Windows side and look for what is using all of the CPU, only to discover that suddenly the CPU usage has dropped again. The reason for this is that installing Windows Updates usually results in updating the .NET framework, which has a process called mscorsvw.exe. This is what is eating CPU cycles when Windows is idle.

    Not to get too technical, mscorsvw.exe basically processes a bunch of files to make .NET run more efficiently in the long run. It does this only when the .NET framework has changed in some way (Windows Update) and when the system is idle. Unfortunately, when you're doing a bunch of stuff in the host OS (OSX), Windows has no way of knowing that the overall system is not idle and starts this process. This was driving me crazy mostly since I am using a Macbook which is not always plugged in and thus should not be burning CPU cycles needlessly, so I found the solution.

    You can force this process to do all of its work by doing the following steps. I am assuming you're running the latest version of the .NET framework, but if you're not the directory will be different.

    1) Open a command prompt in Windows (run cmd)
    2) Navigate to %WINDIR%\Microsoft.NET\Framework\v4.0.30319 (cd %WINDIR%\Microsoft.NET\Framework\v4.0.30319). The version number at the end might be slightly different, so if this does not work you'll need to check this directory in Windows Explorer to find the highest version number installed.
    3) Type: ngen executequeueditems

    This will process all of the files in the queue and should hopefully stop running mscorsvw, at least until some other update comes out for .NET. You can also ensure this will stop running in the future by disabling the .NET NGEN service. To do this:

    1) Run services.msc
    2) Find things that start with "Microsoft .NET Framework NGEN" in the list of services
    3) Change any of them that are set to "Automatic" or Automatic (Delayed Start)" to "Disabled"

    This should ensure no more crazy CPU usage when you don't expect it. Be aware that doing this will probably stop ngen/mscorsvw from ever running again which should not cause problems, but .NET applications could run slower than they should if these processes are prohibited from doing their jobs.

    Hope this helps some people, as it was driving me crazy and making my Macbook burn my legs off.
     
    Maria@Parallels likes this.
  2. NtiKay

    NtiKay Bit poster

    Messages:
    2
    Thank you! I appreciate your post. It seems your recommended method resolved the issue (so far...:)). Windows 7, Parallels 9
     

Share This Page