Sizing the Page File for Hyper-V Host Server

Like many things in the Hyper-V world understanding and attributing resources is extremely important. The page file is an important aspect of debugging servers and can in some instances allow servers to handle situations which temporarily exceed the physical memory of the server.

Without rehashing the importance of the page file, in this post I will try to give reference and personal opinion on page file size and the thinking behind the conclusions.

It is important to note that no significant testing or guidance exists to my knowledge at the time of writing about sizing page files which is based on  scientific method. This article is an opinion piece and will be clearly stated as such. Often we as experts in the field are asked for our opinion without the facts to back it up. Although we are often correct, specific circumstance may not be considered and special care should be given to evaluate your circumstances prior to following guidance contained herein.

Background

Patrick Lownds wrote an informative piece here: http://www.mvug.co.uk/blogs/mvugblog/archive/2008/11/27/page-file-sizing-for-the-root-parent-partition.aspx

MSDN described the three types of Kernel Mode Dump files here:

http://msdn.microsoft.com/en-us/library/ff560246(v=VS.85).aspx

Considerations

Production: Hyper-V Server in my opinion are best deployed in clusters which have a certain degree of fault-tolerance and redundancy. In such a circumstance one has to consider how much time you will spend troubleshooting scenarios with specific error conditions before you simply rebuild the box. In most production environments, the ability to rebuild a Hyper-V Host is automated and can be accomplished in less that 15 minutes. So why is this important?

If you have pre-determined that troubleshooting a server is not worth the time it takes and it is simpler to rebuild a fresh server Crash dumps and the resulting disk space allocations are not required. For that reason the use of a page file is of minimal value. In a production environment therefore, a Mini Dump is all that may be required and the page file can be sized at anything over 64 KB.

Testing and Debugging: In a testing environment or if you find yourself in a repeatable circumstance where more debugging might be required a Kernel mode dump will be most helpful.

This kind of dump file is significantly smaller than the Complete Memory Dump. Typically, the dump file will be around one-third the size of the physical memory on the system. Of course, this quantity will vary considerably, depending on your circumstances.

This dump file will not include unallocated memory, or any memory allocated to user-mode applications. It only includes memory allocated to the Windows kernel and hardware abstraction level (HAL), as well as memory allocated to kernel-mode drivers and other kernel-mode programs.

For most purposes, this crash dump is the most useful. It is significantly smaller than the Complete Memory Dump, but it only omits those portions of memory that are unlikely to have been involved in the crash.

The single server: Well, to be honest I am not a huge fan of this scenario. In my mind it adds complexity and does not add a lot of value. With the ability to install to VHD one should question what value virtualization has in a single box scenario. Multiple workloads would be better hosted in a two server environment with an iSCSI target. Having said that its out there and I have installed them and run them myself. In a single server production scenario where you have disk space I suggest the size remain RAM +1 MB. You just want to afford yourself every opportunity to recover from a crash.

Good luck and I hope this article has been helpful in exposing different considerations when allocating resources to the page file.

Office Spell 2010 Spell Check not Working

I ran into a strange problem with spell check. Seems it had stopped working for no apparent reason. Here is what I found that fixed it.

a. Close Word and any other open applications.
b. Click on Start | Run | Open and type "regedit" (without the quotation marks).
c. If the key HKEY_CURRENT_USER\Software\Microsoft\Shared Tools\Proofing Tools\1.0\Override exists, delete it.
d. Exit the Registry Editor.
e. Restart your computer

I validated that on most computers the Override key does not exist. I am not sure Office 2010 beta placed these keys as it expired.

Hope this helps if you find the same issue.

Windows Virtual PC – VPC.exe consumes 100% of one core

After most of a month troubleshooting, windows support comes through. Jim M from the Microsoft Customer Support  is dedicated and provided excellent support through out. To be accurate the reason this took so long is because I initially thought it might be a problem with the SP1 beta which I had installed.

The issue is that VPC was consuming 100% of the CPU of one core. The challenge is that this is a by design solution which in my opinion was the wrong approach to solving another problem described in KB 981285. So in troubleshooting a problem with the VPC client the KB article had me modify a setting that effectively by design created a performance problem on the host pc.

In this post I will cover how to undo the fix described in KB 981285 and restore normal CPU usage on the host machine while the VPC is running. I will also describe the effect of the enable_idle_thread.

How to Solve:

  • Shutdown (not hibernate) all VMs hosted by Windows VPC.
  • Locate the options.xml in this location:

C:\Users\jeff\AppData\Local\Microsoft\Windows Virtual PC

where Jeff equals the logged in user.

  • Open the Options.xml file in notepad and look for the following setting:

     <virtual_machines>
        <enable_idle_thread type="boolean">true</enable_idle_thread>
        <power>
            <mm_timer_duration type="integer">1</mm_timer_duration>
        </power>
    </virtual_machines>

Note: enable_idle_thread setting essentially tells the VPC host to use 100% of one CPU core when the VPC is idle so that the host operating system does not go to sleep based on your power management settings. In my opinion this feature should be deprecated and a new feature should be added to ignore power management settings while VPCs are running. More info on enable_idle_thread can be found here: VPC Guy

  • To restore regular CPU performance on the host PC change the enable_idle_thread setting to false as shown below.

    <virtual_machines>
        <enable_idle_thread type="boolean">false</enable_idle_thread>
        <power>
            <mm_timer_duration type="integer">1</mm_timer_duration>
        </power>
    </virtual_machines>

Save and close the options.xml.

Reflections

Reflecting back I caused the problem by following the KB mentioned above and turning on the enable_idle_thread in order to address VPC client performance issues. The challenge is that I was not aware of what the setting did. I took it for granted that the setting would come with no side effects.

Xbox, PS3 and WII have more impact than iPad

In a panel related to media consumption, Netflix CEO said the iPad is insignificant. Claiming the apple latops outstrip iPad by a wide margin and Windows based laptops are a massive portion of the market. For significant device trends in media consumption Reed Hastings said in a panel discussion

“the impact of Xbox, PS3, the Wii phenomenon–huge impact
Read more: http://news.cnet.com/8301-13577_3-20023177-36.html#ixzz15jpcIeWJ

Netflix has added 2 million subscribers in the last quarter.