XenServer from Citrix is one sweet piece of software. It kicks all the others free Virtual Machines servers to shame. We have been using XenServer 5 for a while now and we get absolutely brilliant performance. However there are a few things to consider when choosing XenServer for any real world use.
The Guidelines we use to decide are pretty much based on our observations and experience. Anyway, here they are:
For multiple machines that do not use continuous processing or are not in mission critical processing, you can get an average of 4-7 virtual machines per CPU core. So on a Quad core processor with at-least 8 MB cache, you can run 16-25 machines on an average. Recommended about 20-22 machines. On medium-high processing VMs, you can run 2-4 machines per core. On a quad core CPU, you can extract 8-16 VMs. Recommended about 10-12 machines.
We currently run around 10 machines on a quad core Xeon 2.0 GHz with 12 MB cache with no hitch.
RAM is not the performance crunching factor but is needed to run the VMs. On average depending on the need, a virtual machine needs 256 MB to 512 MB memory. For 10 VMs running with 512 MB, we need 5 GB RAM for VMs plus an additional 300 MB for the base system. Adding the approximately 3 MB overhead per machine we are in the ballpark of 5.4 GB. We recommend a machine with 8 GB ram to handle additional machines or if any machine needs larger memory size.
The biggest performance factor in a virtualized system is its hard drive system. Hard drives are slow and random read/ writes are even slower. Further VMs write/read a considerable amount of data when starting or stopping or even during normal operations.
For hard drives, the cost can increase considerably if you choose SAS/SCSI hard drives as compared to SATA. So we decided to keep up with SATA drives and configure it with a Raid-10 partition. Raid-10 delivers excellent performance with concurrent read/write operations. Our setup is 4 x 250 GB western digital 7200 RPM drives connected to a LSI logic Raid card. We get excellent performance even with concurrently running 10 VMs.
Choose a good raid card. This can considerably improve the performance of your machines.
For Windows VM, turn off system restore if you can, keep the swap space to a fixed size. Turn off non essential services and set the machine GUI to maximum performance.
For Linux, keep swap partition to a minimum. Turn off unused services.
Server class machine with one Quad core 2 Ghz 12 MB cache processor, 8 GB ECC RAM, 4 x 250 GB HDD, LSI MegaRaid 4x SATA Raid card, DVD-ROM drive, XenServer 5.