Virtualizing SharePoint Server 2007 Series - Optimizing the performance of a virtualized SharePoint environment
There are differences between physical hardware and the virtual implementation of hardware that host your SharePoint farm. Many of these differences are subtle and not obvious. This topic will highlight some of the important differences and explain how that impacts your virtual machine design and how to optimize the performance of your virtualized SharePoint environment. It helps you understand in one blog post the real underlying issues affecting performance of your farm. Finally it finishes off by providing a plan for virtualizing your SharePoint farm.
This topic discusses:
- "Hosted" versus "bare metal" hypervisor and recommendation for your SharePoint farm
- What are the physical and virtual hardware boundaries for hosting your SharePoint farm?
- What are the layers of a virtual SharePoint farm?
- The difference between a physical and virtual resource
- Recommendations for your SharePoint environment from a physical and virtual perspective for CPU, Memory, Disk and Network.
- Plan for virtualized SharePoint farms
“Hosted” versus “bare metal” hypervisor
The first important performance choice to make when virtualizing your SharePoint farm is whether to use a “hosted" or “bare metal" hypervisor virtualization technology to host your SharePoint farm.
- “Bare Metal” hypervisors are software systems, such as Windows Server 2008 with Hyper-V and VMWARE ESX Server, that execute directly on the host’s hardware as a hardware control and guest operating system monitor. The guest operating system which hosts SharePoint software executes directly above the hypervisor.
- “Hosted” hypervisors are software applications running within a conventional operating system environment, typically as a service. Examples include Microsoft Virtual Server 2005 R2 and VMWare Server. The guest operating system which hosts SharePoint software is executes above the operating system which then executes on the hardware resulting in 3 layers between hardware and SharePoint.
“Bare metal” technologies have less software layers between hardware and the guest operating system and are more performant than “Hosted” implementations and will provide greater performance for your SharePoint farm.
What are the physical and virtual hardware boundaries for hosting your SharePoint farm?
The table below lists the physical and virtual hardware support for Microsoft server virtualization technologies. If you use VMware here are links to VMware's site for VMWARE ESX Server and VMWARE Server hardware and software boundaries.
|Virtual Server 2005 R2||Windows Hyper V|
|Architecture||Host: x86 or x64 Guest: x86 (32-bit) only||Host: x64 Guest: x86 or x64|
|CPU||1 virtual CPU per guest VM CPU emulates hardware (E.g. Intel/ AMD) No SMP||x64 CPU with hardware assisted virtualization 4 x virtual CPUS per Guest VM. (Numbers of CPUs is dependant on guest operating system, See FAQ) SMP supported|
Host: 64 GB RAM (with PAE enabled) Guest: 3.6 GB RAM per VM
Host: up to 1 TB Guest: up to 64 GB RAM per VM
|Networking||100MB per network adapter 4 x network adaptors No VLAN support||10GB Ethernet adaptors 12 x network adaptors (8 synthetic ; 4 emulated) unlimited virtual switches and unlimited vms per switch|
|Disk||4 x virtual SCSI busses 2 TB maximum per Virtual Hard Disk 56 TBs of storage per virtual machine||Direct Attach Storage (DAS): SATA, eSATA, PATA, SAS, SCSI, USB, Firewire Storage Area Networks (SANs): iSCSI, Fiber Channel, SAS Network Attached Storage (NAS) Pass through disk support (4 x virtual IDE and 4 x virtual SCSI) 512 TB of storage per VM|
|Licensing||Free (Host and Guest OS requires licenses)||Hyper V Server (host free only) Windows Standard Server (host + 1 VMs) Windows Enterprise Server (host + 4 VMs) Windows Datacenter Server (host + unlimited VMs)|
|Reference Links||Microsoft Virtual Server 2005 R2 FAQ||Microsoft Windows Server 2008 Hyper V FAQ Nick MacKenie’s blog post: Hyper-V Maximum Supported Configurations|
From the above table, it is evident that Microsoft Windows Server 2008 Hyper V is the recommended option for enterprises using Microsoft virtualization technologies. The key items that stand out for me are the greatly improved network capacity, CPU and memory capacity which SharePoint will take advantage of. If you use VMware in your organisation, it is recommended to use ESX infrastructure (similar to Hyper V) to host your SharePoint farm.
What are the layers of a virtual SharePoint farm?
- Physical hardware layer: The physical hardware layer consists of physical resources in your host server, such as CPU, memory, network and disk
- Virtualization platform layer: The virtualization platform layer, in Windows Server Hyper V,consists of the Hypervisor and Parent partition and the combined effect on of multiple virtual machines sharing the same physical resources of the physical hardware layer. See downloadable whitepaper for more detail on Hypervisor and Parent partition
- Guest operating system layer: This layer is where the virtual machine’s, each preconfigured with a set of virtual resources, reside. This is where SharePoint server roles are hosted for your SharePoint farm.
The decisions on the physical, virtual resources and configuration at each of these layers affect the performance of every virtual machine, and therefore the overall performance of your MOSS farm.
The difference between a physical and virtual resource
There are some subtle differences between the virtual and physical resource. Why does this matter? Each server role in the virtual SharePoint farm behave differently using virtual resources compared to physical resources.
- Physical CPU performance is governed by number of processors and cores, processor efficiency, power draw and heat output
- Virtual CPU performance is governed by physical CPU and bus contention
- Physical Memory performance is governed by memory available on the server and the page/ swap file, which is disk bound.
- Virtual Memory performance is governed by performance of NUMA nodes, which are memory boundaries on the physical hosts that virtual sessions can be spread across. Virtual Memory is also affected by CPU and disk contention.
- Physical Disk performance (Disk I/O) is governed by type of of physical disk (E.g. SAN), the speed of the disk (E.g. 15000 RPM, the RAID configuration and the type of controller (E.g. SCSI).
- Virtual Disk performance consist of virtual fixed size disks, dynamically expanding disk, and pass through disks . Virtual Disk performance is affected by physical network (if you use external storage solution, such as SAN) and CPU performance and underlying physical disk contention.
- Physical Network (NIC) performance is governed by number and speed of Ethernet adaptors and switches, and network bandwidth available in your environment.
- Virtual Network performance is governed by physical NIC, whether you are using emulated or synthetic network drivers, your CPU, and I/O, and the bandwidth available.
Recommendations for your SharePoint environment from a physical and virtual perspective for CPU, Memory, Disk and Network.
Optimize Physical resource Optimize Virtual resource CPU
- Performance is governed by processor efficiency, power draw and heat output
- Faster versus efficient processor – hidden power consumption cost
- Beware of built in processor software such as performance throttle for thermal thresholds
- Prefer higher number of processors and multi core
- Prefer PCI Express to limit bus contention & cpu utilization
- Prefer 64 bit to 32 bit as it effects how much memory can be addressed and supports larger number of CPUS.
- Configure a 1-to-1 mapping of virtual processor to logical processors for best performance
- Be aware of the virtual processor limit for different guest operating systems and plan accordingly
- Beware of “CPU bound” issues, the ability of processors to process information for virtual devices will determine the maximum throughput of such a virtual device. Example: Virtual NICS
- Ensure there is sufficient memory installed on the physical computer that hosts the Hyper-V virtual machines
- Factor in Hypervisor memory overhead over and above standard virtual machine memory requirements.
- Use a 64-bit guest operating system when possible
- Configure the correct amount of memory for Hyper-V guests. (memory configuration is hardware specific).
- NUMA Memory Considerations (see NUMA nodes section)
- Watch out for page file / swap file. Disk is always slower than RAM. Ensure enough memory is allocated to each virtual machine.
- If using VMware, avoid over committing memory as it may cause virtual machine to swap to disk which is slower than RAM.
- Prefer fixed size to dynamically expanding (more info here)
- Prefer the pass-through disk feature in Hyper-V to either of the above.
- Prefer SCSI controller to IDE controller.
- Ensure you are using the fastest Fibre Channels SAN infrastructure: Attempt to provide each virtual machine with its own IO channel to shared storage using dual or quad ported HBAs and Gigabit Ethernet adapters.
- Ensure your disk infrastructure is as fast as it can be. (RAID 10; 15000 RPM) – Slow disk causes CPU contention as Disk I/O takes longer to return data.
- Put virtual hard disks on different physical disks than the hard disk that the host operating system uses
- Beware of underlying disk read write contention between different virtual machines to their virtual hard disks
- Ensure SAN is configured and optimized for virtual disk storage. Understand that a number of LUNs can be provisioned on the same underlying physical disks
- Use Gigabit Ethernet adaptors and Gigabit switches
- Increasing network capacity – Add a number of NICs to host.
- Use IPv4 as the network protocol for Hyper-V host and disable IPv6 (More info here)
- Ensure that integration components (“enlightenments”) are installed on the virtual machine
- Use the Network Adapter instead of the Legacy Network Adapter when configuring networking for a virtual machine
- Prefer synthetic to emulated drivers as they are more efficient, use a dedicated VMBus to communicate to the Virtual NIC and result in lower CPU and network latency.
- Use virtual switches and VLAN tagging for security and performance improvement and create and internal network between virtual machines in your SharePoint farm. Associate SharePoint VMs to the same virtual switch.
- Use IPv4 as the network protocol for Hyper-V guests and disable IPv6 (More info here)
Plan for virtualized SharePoint farms
- Determine the physical software and hardware requirements for your existing or planned SharePoint farm. See the following TechNet articles for guidance:
- Determine your virtual machine hardware requirements for your SharePoint farm using the the following guideline for each virtual machine in your farm:
- “Allocate 110% – 125% of the CPU, memory, and disk resources required by the stated physical hardware requirement to each Hyper V virtual machine ( MSDN: Optimizing Performance on Hyper V)
- Now assess whether your physical virtualization environment and technology will be able to meet your performance requirements for your SharePoint farm. (See virtualization boundaries in previous section.)
- Plan and optimize your host environment servers by ensuring that each has enough physical resources to host the planned virtual SharePoint servers. Don’t forget to make facility for failover cluster host servers for your virtual machines.
- Plan and optimize your virtualization platform layer:
- Understand the virtualization overhead with different mixes of SharePoint VM workloads
- Understand the performance bottlenecks in the underlying storage and network infrastructure, both from a cumulative as as individual path perspective.
- Group complimentary virtual SharePoint machine workloads (a workload is a single virtual machine) for optimal performance on a physical host based on the performance characteristics of your virtual machines
- Plan and optimize the guest operating system layer :
- Use Windows Server 2008 as the guest operating system (See information on “enlightenments”)
- Optimize each virtual guest by ensuring that the 4 physical and virtual resources utilization are maximized. Secondly maximize application and configuration for each guest machine in your virtual SharePoint environment
- Finally continually monitor performance and adapt configuration for optimal performance for each host server based on what is happening in your organisation. Plan and cater for peak usage scenarios.
Other articles in this series
- Virtualizing SharePoint Series - Introduction
- Virtualizing SharePoint Series - Optimizing the performance of a virtualized SharePoint environment
- Virtualizing SharePoint Series - SharePoint server role recommendations in virtualized environmennts
- Virtualizing SharePoint Series - Monitoring and managing your virtualized SharePoint environment
- Virtualizing SharePoint Series - High availability and disaster recovery, deployment best practices, common mistakes and summary
This article was authored by:
Microsoft Consulting Services UK