Saturday 18 August 2007

Virtual Server - VM Memory & CPU requirements

We have been working with Virtual Server 2005 R2 SP 1 for our virtualization needs.

The two key physical limitations to the number of virtual machines, in our experience, are the amount of memory installed and the speed and number of cores on the CPUs.

Windows Server 2003 Standard R2 x64 serves most of our virtualization needs. With the /PAE switch in boot.ini, we get to address as much RAM as we need.

For Intel based uniprocessor servers we are limited to 8 GB of RAM. For dual processor servers we are limited to 32 GB of RAM.

We tend to configure one (1) virtual machine for each core on a processor. For a Quad Core uniprocessor server we would run a maximum of 4 virtual machines. For a V8 server, dual Quad Core CPUs, we would run a maximum of 8 virtual machines.

This setup is, of course, based on the limitations of VS 2K5 of one core to one virtual machine.

VMWare Server would give us the option of dual SMP - two cores - for a virtual machine if the situation warranted. We would reduce the number of VMs running on the host OS accordingly.

A good portion of our client based virtualization needs are for remote desktop serving. The ability to run virtual XP Pro or Vista Business desktops provides flexibility for Group Policy based desktop security, user and application limitations via Group Policy, Line of Business apps that may not be able to be installed on a Terminal Server, Remote Web Workplace access via "Connect to my computer at work", and more.

An XP Pro VM can run quite comfortably on 512 MB of RAM while on a dual 3.06 GHz Intel Xeon based server. Virtualization is one place where Hyper-Threading actually works.

Windows Vista Business will require a minimum of 1 GB of RAM when running virtually. Anything less than that and Vista takes a pretty heavy performance hit.

We tend to set at least 2 GB of RAM to a virtualized SBS installation. That is the minimum we would install on a physical SBS installation, so we stick with it for VMs.

Windows Server 2003 Standard R2 serving DNS to the Internet can run on 256 MB of RAM. Install Exchange and the memory requirements jump up to at least 1 GB with 2 GB being better. ISA virtualized will run okay on 512 MB but better on 1 GB.

A rule of thumb is to leave a minimum of 384 MB of RAM for the host OS. Make sure that only the host OS basics are installed. For Windows Server 2003 Standard R2, remove or disable all nonessential services to lean out the OS.

So far, virtualization has done great things for our clients and for us. It can greatly reduce the costs of running a few extra dedicated remote desktops when all of the client's staff is laptop based. It can provide a single box solution for a number of light duty server roles that are easy to backup and restore as needed and in short order.

For those of us in IT, it eliminates the hardware/$$$ limitation on our testing labs. One V8 server will serve most small shop's server/client VM environmental needs. No more need to have four, five, or more boxes with a KVM or two just for those lab situations where we need to test whether our client boxes will blow up with the next run of updates and patches!

It also gives us a tremendous time saver: Undo Disks! With undo disks enabled, if that run of patches or updates does blow up the virtualized client SBS or other server box, we can undo the patches by discarding the changes and then start again. Hopefully we will be able to figure out which patch is causing the problems with what installed component and go from there.

All in all, virtualization can provide an excellent way for us to create some pretty neat solutions for our clients with a very attractive price point.

This is needed to enable Windows Server 2003 Standard R2 x64 to access installed RAM above 4 GB: Microsoft KB 283037: Large memory support is available in Windows Server 2003 and in Windows 2000

Philip Elder
Microsoft Small Business Specialists

*All Mac on SBS posts are posted on our in-house iMac via the Safari Web browser.


Josh said...

Im pretty sure you dont need the /PAE switch on 64 bit OS. If you read the microsoft article you linked to, they list under applies to 32 bit X86 for the 2003 server items.

I dont know if /PAE affects performance on 64 bit OS. Should do some research and make sure.

Josh said...

Found it.

"PAE is supported only on 32-bit versions of the Windows operating system. 64-bit versions of Windows do not support PAE. For information about device driver and system requirements for 64-bit versions of Windows, see 64-bit System Design."

Philip Elder Cluster MVP said...


Indeed, I had my wires crossed! My apologies for the misinformation.

The PAE switch is on the 32 bit Enterprise version of Windows Server 2003.

Good catch, and thanks for that!