Performance Best Practices For Vmware Vsphere™ 4.1: Vmware Esx™ 4.1 and Esxi 4.1 Vcenter™ Server 4.1
Performance Best Practices For Vmware Vsphere™ 4.1: Vmware Esx™ 4.1 and Esxi 4.1 Vcenter™ Server 4.1
Performance Best Practices For Vmware Vsphere™ 4.1: Vmware Esx™ 4.1 and Esxi 4.1 Vcenter™ Server 4.1
1
VMware ESX 4.1 and ESXi 4.1 vCenter Server 4.1
EN-000005-03
You can find the most up-to-date technical documentation on the VMware Web site at: http://www.vmware.com/support/ The VMware Web site also provides the latest product updates. If you have comments about this documentation, submit your feedback to: [email protected]
2007-2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware, the VMware boxes logo and design, Virtual SMP, and VMotion are registered trademarks or trademarks of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies. Revision: 20101028
VMware, Inc.
Contents
10
VMware, Inc.
Glossary Index 57
49
VMware, Inc.
Tables
Table 1. Conventions Used in This Manual 8 Table 2-1. Symptoms of Insufficient Resources for the ESX Service Console Table 4-1. Java Virtual Machine Max Heap Size Recommendations 36 Table 4-2. DRS Advanced Options for Performance Tuning 41
15
VMware, Inc.
VMware, Inc.
This book, Performance Best Practices for VMware vSphere 4.1, provides performance tips that cover the most performance-critical areas of VMware vSphere 4.1. It is not intended as a comprehensive guide for planning and configuring your deployments. Chapter 1, Hardware for Use with VMware vSphere, on page 9, provides guidance on selecting hardware for use with vSphere. Chapter 2, ESX and Virtual Machines, on page 15, provides guidance regarding VMware ESX software and the virtual machines that run in it. Chapter 3, Guest Operating Systems, on page 29, provides guidance regarding the guest operating systems running in vSphere virtual machines. Chapter 4, Virtual Infrastructure Management, on page 35, provides guidance regarding resource management best practices. NOTE For planning purposes we recommend reading this entire book before beginning a deployment. Material in the Virtual Infrastructure Management chapter, for example, might influence your hardware choices. NOTE Most of the recommendations in this book apply to both ESX and ESXi. The few exceptions are noted in the text.
Intended Audience
This book is intended for system administrators who are planning a VMware vSphere 4.1 deployment and want to maximize its performance. The book assumes the reader is already familiar with VMware vSphere concepts and terminology.
Document Feedback
VMware welcomes your suggestions for improving our documentation. If you have comments, send your feedback to: [email protected]
VMware, Inc.
Conventions
Table 1 illustrates the typographic conventions used in this manual. Table 1. Conventions Used in This Manual
Style Blue (online only) Black boldface Monospace Monospace bold Italic <Name> Elements Links, cross-references, and email addresses User interface elements such as button names and menu items Commands, filenames, directories, and paths User input Document titles, glossary terms, and occasional emphasis Variable and parameter names
VMware, Inc.
This chapter provides guidance on selecting and configuring hardware for use with VMware vSphere.
Hardware-Assisted Virtualization
Most recent processors from both Intel and AMD include hardware features to assist virtualization. These features were released in two generations: the first generation introduced CPU virtualization; the second generation included CPU virtualization and added memory management unit (MMU) virtualization. For the best performance, make sure your system uses processors with at least second-generation hardware-assist features.
VMware, Inc.
Without hardware-assisted MMU virtualization, the guest operating system maintains guest virtual memory to guest physical memory address mappings in guest page tables, while ESX maintains shadow page tables that directly map guest virtual memory to host physical memory addresses. These shadow page tables are maintained for use by the processor and are kept consistent with the guest page tables. This allows ordinary memory references to execute without additional overhead, since the hardware translation lookaside buffer (TLB) will cache direct guest virtual memory to host physical memory address translations read from the shadow page tables. However, extra work is required to maintain the shadow page tables. Hardware-assisted MMU virtualization allows an additional level of page tables that map guest physical memory to host physical memory addresses, eliminating the need for ESX to maintain shadow page tables. This reduces memory consumption and speeds up workloads that cause guest operating systems to frequently modify page tables. For information about configuring the way ESX uses hardware-assisted MMU virtualization, see Configuring ESX for Hardware-Assisted Virtualization on page 20.
10
VMware, Inc.
VMware, Inc.
11
For iSCSI and NFS, make sure that your network topology does not contain Ethernet bottlenecks, where multiple links are routed through fewer links, potentially resulting in oversubscription and dropped network packets. Any time a number of links transmitting near capacity are switched to a smaller number of links, such oversubscription is a possibility. Recovering from these dropped network packets results in large performance degradation. In addition to time spent determining that data was dropped, the retransmission uses network bandwidth that could otherwise be used for new transactions. For NFS and iSCSI, if the network switch deployed for the data path supports VLAN, it is beneficial to create a VLAN just for the ESX host's vmknic and the NFS/iSCSI server. This minimizes network interference from other packet sources. Be aware that with software-initiated iSCSI and NFS the network protocol processing takes place on the host system, and thus these might require more CPU resources than other storage options.
12
VMware, Inc.
VMware, Inc.
13
14
VMware, Inc.
This chapter provides guidance regarding ESX software itself and the virtual machines that run in it.
Allocate only as much virtual hardware as required for each virtual machine. Provisioning a virtual machine with more resources than it requires can, in some cases, reduce the performance of that virtual machine as well as other virtual machines sharing the same host. Disconnect or disable unused or unnecessary physical hardware devices, such as: COM ports LPT ports USB controllers Floppy drives Optical drives (that is, CD or DVD drives) Network interfaces Storage controllers Disabling hardware devices (typically done in BIOS) can free interrupt resources. Additionally, some devices, such as USB controllers, operate on a polling scheme that consumes extra CPU resources. Lastly, some PCI devices reserve blocks of memory, making that memory unavailable to ESX. Unused or unnecessary virtual hardware devices can impact performance and should be disabled. For example, Windows guest operating systems poll optical drives (that is, CD or DVD drives) quite frequently. When virtual machines are configured to use a physical drive, and multiple guest operating systems simultaneously try to access that drive, performance could suffer. This can be reduced by configuring the virtual machines to use ISO images instead of physical drives, and can be avoided entirely by disabling optical drives in virtual machines when the devices are not needed.
VMware, Inc.
15
ESX 4.0 introduced virtual hardware version 7. By creating virtual machines using this hardware version, or upgrading existing virtual machines to this version, a number of additional capabilities become available. Some of these, such as VMXNET3 and PVSCSI, can improve performance for many workloads. This hardware version is not compatible with versions of ESX prior to 4.0, however, and thus if a cluster of ESX hosts will contain some hosts running pre-4.0 versions of ESX, the virtual machines running on hardware version 7 will be constrained to run only on the ESX 4.x hosts. This could limit vMotion choices for Distributed Resource Scheduling (DRS) or Distributed Power Management (DPM).
16
VMware, Inc.
VMware, Inc.
17
Even if the guest operating system doesnt use some of its vCPUs, configuring virtual machines with those vCPUs still imposes some small resource requirements on ESX that translate to real CPU consumption on the host. For example: Unused vCPUs still consume timer interrupts in some guest operating systems. (Though this is not true with tickless timer kernels, described in Guest Operating System CPU Considerations on page 31.) Maintaining a consistent memory view among multiple vCPUs can consume additional resources, both in the guest operating system and in ESX. (Though hardware-assisted MMU virtualization significantly reduces this cost.) Most guest operating systems execute an idle loop during periods of inactivity. Within this loop, most of these guest operating systems halt by executing the HLT or MWAIT instructions. Some older guest operating systems, however, use busy-waiting within their idle loops. This results in the consumption of resources that might otherwise be available for other uses (other virtual machines, the VMkernel, the console, etc.). (These older operating systems include Windows 2000 (with certain HALs), Solaris 8 and 9, and MS-DOS.) For additional information see VMware KB articles 1077 and 2231. The guest operating systems scheduler might migrate a single-threaded workload amongst multiple vCPUs, thereby losing cache locality. These resource requirements translate to real CPU consumption on the host.
Hyper-Threading
Hyper-threading technology (recent versions of which are called symmetric multithreading, or SMT) allows a single physical processor core to behave like two logical processors, essentially allowing two independent threads to run simultaneously. Unlike having twice as many processor coresthat can roughly double performancehyper-threading can provide anywhere from a slight to a significant increase in system performance by keeping the processor pipeline busier. If the hardware and BIOS support hyper-threading, ESX automatically makes use of it. For the best performance we recommend that you enable hyper-threading, which can be accomplished as follows: a Ensure that your system supports hyper-threading technology. It is not enough that the processors support hyper-threading the BIOS must support it as well. Consult your system documentation to see if the BIOS includes support for hyper-threading. Enable hyper-threading in the system BIOS. Some manufacturers label this option Logical Processor while others label it Enable Hyper-threading.
18
VMware, Inc.
An ESX system enabled for hyper-threading will behave almost exactly like a system without it. Logical processors on the same core have adjacent CPU numbers, so that CPUs 0 and 1 are on the first core, CPUs 2 and 3 are on the second core, and so on. ESX systems manage processor time intelligently to guarantee that load is spread smoothly across all physical cores in the system. If there is no work for a logical processor it is put into a special halted state that frees its execution resources and allows the virtual machine running on the other logical processor on the same core to use the full execution resources of the core. Be careful when using CPU affinity on systems with hyper-threading. Because the two logical processors share most of the processor resources, pinning vCPUs, whether from different virtual machines or from one SMP virtual machine, to both logical processors on one core (CPUs 0 and 1, for example) could cause poor performance. ESX provides configuration parameters for controlling the scheduling of virtual machines on hyper-threaded systems. When choosing hyper-threaded core sharing choices, the Any option (which is the default) is almost always preferred over None or Internal. The None option indicates that when a vCPU from this virtual machine is assigned to a logical processor, no other vCPU, whether from the same virtual machine or from a different virtual machine, should be assigned to the other logical processor that resides on the same core. That is, each vCPU from this virtual machine should always get a whole core to itself and the other logical CPU on that core should be placed in the halted state. This option is like disabling hyper-threading for that one virtual machine. The Internal option indicates that the vCPUs of the virtual machine can share cores with each other, but not with vCPUs from other virtual machines. For nearly all workloads, custom hyper-threading settings are not necessary. In cases of unusual workloads that interact badly with hyper-threading, however, choosing the None or Internal hyper-threading option might help performance. For example, an application with cache-thrashing problems might slow down applications sharing its physical CPU core. In this case configuring the virtual machine running that problem application with the None hyper-threading option might help isolate that virtual machine from other virtual machines. The trade-off for configuring None or Internal should also be considered. With either of these settings, there can be cases where there is no core to which a descheduled virtual machine can be migrated, even though one or more logical cores are idle. As a result, it is possible that virtual machines with hyper-threading set to None or Internal can experience performance degradation, especially on systems with a limited number of CPU cores. The ESX scheduler ensures that each virtual machine receives its fair share of CPU resources while enforcing the resource controls, such as reservations, limits, and shares. On hyper-threaded processors the amount of CPU resources a vCPU receives is affected by the activity on the other logical processor on the same physical core. To guarantee that each vCPU receives its fair share, ESX sometimes schedules just one vCPU on a hyper-threaded core, effectively leaving one of the logical processors idle. As a result, ESX might not take full advantage of the available CPU resources. This happens rarely, and only when the system has high CPU utilization, has close to full CPU commitment (that is, the number of vCPUs is nearly equal to the number of physical cores), and has specific types of bursty CPU usage patterns. In these situations, a parameter called HaltingIdleMsecPenalty can be used to adjust the behavior of the fairness algorithm. For additional details, see VMware KB article 1020233.
The intelligent, adaptive NUMA scheduling and memory placement policies in ESX can manage all virtual machines transparently, so that administrators dont need to deal with the complexity of balancing virtual machines between nodes by hand. Manual override controls are available, however, and advanced administrators may prefer to control the memory placement (through the Memory Affinity option) and processor utilization (through the Only Use Processors option). By default, ESX NUMA scheduling and related optimizations are enabled only on systems with a total of at least four CPU cores and with at least two CPU cores per NUMA node. On such systems, virtual machines can be separated into the following two categories: Virtual machines with a number of vCPUs equal to or less than the number of cores in each NUMA node. These virtual machines will be assigned to cores all within a single NUMA node and will be preferentially allocated memory local to that NUMA node. This means that, subject to memory availability, all their memory accesses will be local to that NUMA node, resulting in the lowest memory access latencies. Virtual machines with more vCPUs than the number of cores in a NUMA node (called wide virtual machines, a new feature in vSphere 4.1). These virtual machines will be assigned to two (or more) NUMA nodes and will be preferentially allocated memory local to those NUMA nodes. Because vCPUs in these wide virtual machines might sometimes need to access memory outside their own NUMA node, they might experience higher average memory access latencies than virtual machines that fit entirely within a NUMA node. Because of this difference, there can be a slight performance advantage in some environments to virtual machines configured with no more vCPUs than the number of cores in each NUMA node. Conversely, some memory bandwidth bottlenecked workloads benefit from the increased aggregate memory bandwidth available when a virtual machine is split across multiple NUMA nodes. This split can be accomplished by using the numa.vcpu.maxPerMachineNode option. More information about using NUMA systems with ESX can be found in the vSphere Resource Management Guide for 4.1.
20
VMware, Inc.
Select the desired radio button: Automatic allows ESX to determine the best choice. This is the default; http://communities.vmware.com/docs/DOC-9882 provides a detailed list of which VMM is chosen for each combination of CPU and guest operating system. Use software for instruction set and MMU virtualization disables both hardware-assisted CPU virtualization (VT-x/AMD-V) and hardware-assisted MMU virtualization (EPT/RVI). Use Intel VT-x/AMD-V for instruction set virtualization and software for MMU virtualization enables hardware-assisted CPU virtualization (VT-x/AMD-V) but disables hardware-assisted MMU virtualization (EPT/RVI). Use Intel VT-x/AMD-V for instruction set virtualization and Intel EPT/AMD RVI for MMU virtualization enables both hardware-assisted CPU virtualization (VT-x/AMD-V) and hardware-assisted MMU virtualization (EPT/RVI). NOTE Some combinations of CPU, guest operating system, and other variables (i.e, turning on Fault Tolerance or using VMI) limit these options. If the setting you select is not available for your particular combination, the setting will be ignored and Automatic will be used.
VMware, Inc.
21
Memory Overhead
Virtualization causes an increase in the amount of physical memory required due to the extra memory needed by ESX for its own code and for data structures. This additional memory requirement can be separated into two components: 1 2 A system-wide memory space overhead for the service console and the VMkernel on ESX or for the VMkernel and various host agents (hostd, vpxa, etc.) on ESXi. An additional memory space overhead for each virtual machine. The per-virtual-machine memory space overhead includes space reserved for the virtual machine devices (for example, the SVGA frame buffer and several internal data structures maintained by the VMware software stack). These amounts depend on the number of vCPUs, the configured memory for the guest operating system, whether the guest operating system is 32-bit or 64-bit, and which features are enabled for the virtual machine. For more information about these overheads, see the vSphere Resource Management Guide for 4.1. However ESX also provides optimizations, such as memory sharing (see Memory Overcommit Techniques), to reduce the amount of physical memory used on the underlying server. In some cases these optimizations can save more memory than is taken up by the overhead.
Memory Sizing
Carefully select the amount of memory you allocate to your virtual machines. You should allocate enough memory to hold the working set of applications you will run in the virtual machine, thus minimizing swapping, but avoid over-allocating memory. Allocating more memory than needed unnecessarily increases the virtual machine memory overhead, thus using up memory that could be used to support more virtual machines. When possible, configure 32-bit Linux virtual machines to have no more than 896MB of memory. 32-bit Linux kernels use different techniques to map memory on systems with more than 896MB. These techniques impose additional overhead on the virtual machine monitor and can result in slightly reduced performance.
22
VMware, Inc.
Memory Compression: In conjunction with host-level swapping, ESX uses memory compression to reduce the number of memory pages it will need to swap out. Because the decompression latency is much smaller than the swap-in latency, compressing a memory page instead of swapping it out can significantly improve performance when a host has heavy memory overcommitment. For further information about memory management, see Understanding Memory Resource Management in VMware ESX 4.1. While ESX uses page sharing and ballooning to allow significant memory overcommitment, usually with little or no impact on performance, you should avoid overcommitting memory to the point that it requires host-level swapping. If you suspect that memory overcommitment is beginning to affect the performance of a virtual machine you can: a Look at the value of Memory Balloon (Average) in the vSphere Client Performance Chart. An absence of ballooning suggests that ESX is not under heavy memory pressure and thus memory overcommitment is not affecting performance. (Note, however, that some ballooning is quite normal and not indicative of a problem.) Check for guest swap activity within that virtual machine. This can indicate that ballooning might be starting to impact performance, though swap activity can also be related to other issues entirely within the guest (or can be an indication that the guest memory size is simply too small). Look at the value of Memory Swap Used (Average) in the vSphere Client Performance Chart. Memory swapping at the host level would indicate more significant memory pressure.
Memory Swapping
As described in Memory Overcommit Techniques, above, ESX supports a bounded amount of memory overcommitment without swapping. If the overcommitment is large enough that the other memory reclamation techniques are not sufficient, however, ESX uses host-level memory swapping, with a potentially significant effect on virtual machine performance. (Note that this swapping is distinct from the swapping that can occur within the virtual machine under the control of the guest operating system.) This subsection describes ways to avoid or reduce host-level swapping, and presents techniques to reduce its impact on performance when it is unavoidable. Because ESX uses page sharing, ballooning, and memory compression to reduce the need for swapping, dont disable these techniques. Host-level memory swapping can be avoided for a specific virtual machine by using the vSphere Client to reserve memory for that virtual machine at least equal in size to the machines active working set. Be aware, however, that configuring resource reservations will reduce the number of virtual machines that can be run on a system. This is because ESX will keep available enough host memory to fulfill all reservations and won't power-on a virtual machine if doing so would reduce the available memory to less than the reserved amount. NOTE The memory reservation is a guaranteed lower bound on the amount of physical memory ESX reserves for the virtual machine. It can be configured through the vSphere Client in the settings window for each virtual machine (select Edit virtual machine settings, choose the Resources tab, select Memory, then set the desired reservation). If you choose to overcommit memory with ESX, be sure you have sufficient swap space on your ESX system. At the time a virtual machine is first powered on, ESX creates a swap file for that virtual machine equal in size to the difference between the virtual machine's configured memory size and its memory reservation. The available disk space must therefore be at least this large.
VMware, Inc.
23
If swapping cannot be avoided, placing the virtual machines swap file on a low latency, high bandwidth storage system will result in the smallest performance impact. A fast local disk might be a good choice, as would an SSD disk. In any case, for best performance swap files should not be placed on storage backed by thin-provisioned LUNs. The swap file location can be set with the sched.swap.dir option in the vSphere Client (select Edit virtual machine settings, choose the Options tab, select Advanced, and click Configuration Parameters). If this option is not set, the swap file will be created in the virtual machines working directory: either the directory specified by workingDir in the virtual machines .vmx file, or, if this variable is not set, in the directory where the .vmx file is located. The latter is the default behavior.
24
VMware, Inc.
LUN Access Methods, Virtual Disk Modes, and Virtual Disk Types
ESX supports raw device mapping (RDM), which allows management and access of raw SCSI disks or LUNs as VMFS files. An RDM is a special file on a VMFS volume that acts as a proxy for a raw device. The RDM file contains metadata used to manage and redirect disk accesses to the physical device. Ordinary VMFS is recommended for most virtual disk storage, but raw disks may be desirable in some cases. ESX supports three virtual disk modes: Independent persistent, Independent nonpersistent, and Snapshot. These modes have the following characteristics: Independent persistent In this mode changes are immediately written to the disk, providing the best performance. Independent nonpersistent In this mode disk writes are appended to a redo log. The redo log is erased when you power off the virtual machine or revert to a snapshot, causing any changes made to the disk to be discarded. When a virtual machine reads from an independent nonpersistent mode disk, ESX first checks the redo log (by looking at a directory of disk blocks contained in the redo log) and, if the relevant blocks are listed, reads that information. Otherwise, the read goes to the base disk for the virtual machine. Because of these redo logs, which track the changes in a virtual machines file system and allow you to commit changes or revert to a prior point in time, performance might not be as high as independent persistent mode disks. Snapshot In this mode disk writes are appended to a redo log that persists between power cycles. Thus, like the independent nonpersistent mode disks described above, snapshot mode disk performance might not be as high as independent persistent mode disks. ESX supports multiple virtual disk types: Thick Thick virtual disks, which have all their space allocated at creation time, are further divided into two types: eager zeroed and lazy zeroed. Eager-zeroed An eager-zeroed thick disk has all space allocated and zeroed out at the time of creation. This extends the time it takes to create the disk, but results in the best performance, even on the first write to each block. NOTE The use of VAAI-capable storage (described in Hardware Storage Considerations on page 11) speeds up eager-zeroed thick disk creation by offloading zeroing operations to the storage array.
VMware, Inc.
25
Lazy-zeroed A lazy-zeroed thick disk has all space allocated at the time of creation, but each block is only zeroed on first write. This results in a shorter creation time, but reduced performance the first time a block is written to. Subsequent writes, however, have the same performance as on eager-zeroed thick disks. NOTE The use of VAAI-capable storage improves lazy-zeroed thick disk first-time-write performance by offloading zeroing operations to the storage array. Thin Space required for a thin-provisioned virtual disk is allocated and zeroed upon first write, as opposed to upon creation. There is a higher I/O cost during the first write to an unwritten file block, but thin-provisioned disks have the same performance as eager-zeroed thick disks on subsequent writes. NOTE The use of VAAI capable storage improves thin-provisioned disk first-time-write performance by improving file locking capability and offloading zeroing operations to the storage array. Virtual disks created using the vSphere Client (whether connected directly to the ESX host or through vCenter) can be lazy-zeroed thick disks (thus incurring the first-write performance penalty described above) or thin disks. Eager-zeroed thick disks can be created from the console command line using vmkfstools. For more details refer to the vmkfstools man page. NOTE Virtual disks created on NFS volumes are always thin-provisioned.
Partition Alignment
The alignment of file system partitions can impact performance. VMware makes the following recommendations for VMFS partitions: Like other disk-based file systems, VMFS suffers a performance penalty when the partition is unaligned. Using the vSphere Client to create VMFS partitions avoids this problem since it automatically aligns the partitions along the 64KB boundary. To manually align your VMFS partitions, check your storage vendors recommendations for the partition starting block. If your storage vendor makes no specific recommendation, use a starting block that is a multiple of 8KB. Before performing an alignment, carefully evaluate the performance impact of the unaligned VMFS partition on your particular workload. The degree of improvement from alignment is highly dependent on workloads and array types. You might want to refer to the alignment recommendations from your array vendor for further information.
SAN Multipathing
By default, ESX uses the Most Recently Used (MRU) path policy for devices on Active/Passive storage arrays. Do not use Fixed path policy for Active/Passive storage arrays to avoid LUN path thrashing. For more information, see the VMware SAN Configuration Guide. By default, ESX uses the Fixed path policy for devices on Active/Active storage arrays. When using this policy you can maximize the utilization of your bandwidth to the storage array by designating preferred paths to each LUN through different storage controllers. For more information, see the VMware SAN Configuration Guide. In addition to the Fixed and MRU path policies, ESX can also use the Round Robin path policy, which can improve storage performance in some environments. Round Robin policy provides load balancing by cycling I/O requests through all Active paths, sending a fixed (but configurable) number of I/O requests through each one in turn.
26
VMware, Inc.
If your storage array supports ALUA (Asymmetric Logical Unit Access), enabling this feature on the array can improve storage performance in some environments. ALUA, which is automatically detected by ESX, allows the array itself to designate paths as Active Optimized. When ALUA is combined with the Round Robin path policy, ESX cycles I/O requests through these Active Optimized paths.
VMware, Inc.
27
VMDirectPath I/O
VMDirectPath I/O leverages Intel VT-d and AMD-Vi hardware support (described in Hardware-Assisted I/O MMU Virtualization (Intel VT-d and AMD AMD-Vi) on page 10) to allow guest operating systems to directly access hardware devices. In the case of networking, VMDirectPath I/O allows the virtual machine to access a physical NIC directly rather than using an emulated device (E1000) or a para-virtualized device (VMXNET, VMXNET3). While VMDirectPath I/O has limited impact on throughput, it reduces CPU cost for networking-intensive workloads. VMDirectPath I/O is incompatible with many core virtualization features, however. These include vMotion, Snapshots, Suspend/Resume, Fault Tolerance, NetIOC, Memory Overcommit, and VMSafe. Typical virtual machines and their workloads don't require the use of VMDirectPath I/O. For workloads that are very networking intensive and don't need the core virtualization features mentioned above, however, VMDirectPath I/O might be useful to reduce CPU usage.
28
VMware, Inc.
This chapter provides guidance regarding the guest operating systems running in virtual machines.
ESX VMI support can be enabled for a virtual machine through the vSphere Client by selecting Edit virtual machine settings, choosing the Options tab, selecting Paravirtualization, then marking the box next to Support VMI Paravirtualization. Enabling VMI for a virtual machine reduces the number of available PCI slots in the guest operating system running in that virtual machine by one. There is no performance benefit to enabling VMI for a virtual machine running a non-VMI operating system. Kernel support for VMI is included in some recent Linux distributions (Ubuntu 7.04 and later and SLES 10 SP2, for example), and can be compiled into other Linux distributions, typically by compiling the kernel with CONFIG_PARAVIRT and CONFIG_VMI. No Microsoft Windows operating systems support VMI. Check the VMware Guest Operating System Installation Guide to see which VMI operating systems are supported in ESX. More information about VMI can be found in Performance of VMware VMI (http://www.vmware.com/resources/techresources/1038) and the Paravirtualization API Version 2.5 (http://www.vmware.com/pdf/vmi_specs.pdf). For best performance, consider the following regarding enabling VMI support: If running 32-bit Linux guest operating systems that include kernel support for VMI on hardware that does not support hardware-assisted MMU virtualization (i.e., EPT or RVI), enabling VMI will improve performance. VMI-enabled virtual machines always use Binary Translation (BT) and shadow page tables, even on systems that support hardware-assisted MMU virtualization. Because hardware-assisted MMU virtualization almost always provides more of a performance increase than VMI, we recommend disabling VMI for virtual machines running on hardware that supports hardware-assisted MMU virtualization. (No kernel change is required in the guest operating system, as the VMI kernel can run in a non-VMI enabled virtual machine.)
30
VMware, Inc.
VMware, Inc.
31
32
VMware, Inc.
VMware, Inc.
33
For VMXNET3 and E1000, the default number of receive and transmit buffers are controlled by the guest driver, with the maximum possible for both being 4096. For Linux, these values can be changed from within the guest by using ethtool. In Windows, the values can be changed from within the guest in the device properties window. For additional information see VMware KB article 1010071. Receive-side scaling (RSS) allows network packet receive processing to be scheduled in parallel on multiple processors. Without RSS, receive interrupts can be handled on only one processor at a time. With RSS, received packets from a single NIC can be processed on multiple CPUs concurrently. This will help receive throughput in cases where a single vCPU would otherwise be saturated with receive processing and become a bottleneck. To prevent out-of-order packet delivery, RSS always schedules all of a flows packets to the same CPU. The VMXNET3 device supports RSS for all Windows guest operating systems that support RSS natively (such as Windows Server 2008 and Windows 7) and also supports multiple transmit queues. By default, on an n-vCPU virtual machine RSS configures n receive queues (up to 4). (RSS doesnt affect the transmit queues, which default to 1 with or without RSS.) In order to obtain the maximum performance with your specific workloads and resource availability you can try out different values for both the number of transmit queues (up to a maximum of 8) and the number of receive queues (up to a maximum of 8). These values are set from the advanced driver configuration tab within the guest operating system.
34
VMware, Inc.
This chapter provides guidance regarding resource management best practices. Most of the suggestions included in this section can be implemented using the vSphere Client connected to a VMware vCenter Server. Some can also be implemented using the vSphere Client connected to an individual ESX host. Further detail about many of these topics, as well as background information, can be found in the VMware vCenter Server Performance and Best Practices white paper.
VMware, Inc.
35
VMware vCenter
This section lists VMware vCenter practices and configurations recommended for optimal performance. It also includes a few features that are controlled or accessed through vCenter. Large numbers of managed hosts, managed virtual machines, and connected VMware vSphere Clients can affect the performance of a vCenter Server. Exceeding the supported maximums, though it might work, is even more likely to impact vCenter performance. For more information, see VMware vSphere 4.1 Release Notes and Configuration Maximums for VMware vSphere 4.1. Make sure you are running vCenter Server and the vCenter Server database on hardware with sufficient CPU, memory, and storage resources for your deployment size. For additional information see ESX and vCenter Server Installation Guide for 4.1. To minimize the latency of vCenter operations, keep to a minimum the number of network hops between the vCenter Server system and the ESX hosts. For the best performance, avoid overly-aggressive vCenter alarm settings. Each time an alarm condition is met the vCenter Server must take appropriate action. If this happens very often, the added load could affect system performance. Although VMware vCenter Update Manager can be run on the same system and use the same database as vCenter Server, for maximum performance, especially on heavily-loaded vCenter systems, you should consider running Update Manager on its own system and providing it with a dedicated database. For additional information see VMware vCenter Update Manager on page 47. Similarly, VMware vCenter Converter can be run on the same system as vCenter Server, but doing so might impact performance, especially on heavily-loaded vCenter systems. Beginning with vSphere 4.0, and continuing in vSphere 4.1, a Java Servlet implementation of Apache Tomcat is used for various services. Appropriately setting the Java virtual machine (JVM) max heap memory size during installation can assure good performance while avoiding unnecessary memory commitment. Table 4-1 shows some recommended sizes. Table 4-1. Java Virtual Machine Max Heap Size Recommendations
Deployed Inventory Size Small (fewer than 100 hosts) Medium (between 100 and 400 hosts) Large (more than 400 hosts) JVM Max Memory 1024MB 2048MB 4096MB
36
VMware, Inc.
Set appropriate PROCESSES and SESSIONS parameters. Oracle creates a new server process for every new connection that is made to it. The number of connections an application can make to the Oracle instance thus depends on how many processes Oracle can create. PROCESSES and SESSIONS together determine how many simultaneous processes Oracle can create. In large vSphere environments we recommend a value of 800 for each of these parameters. For more information on vCenter Server database performance, see VMware vCenter 4.0 Database Performance for MS SQL Server 2008.
VMware, Inc.
37
38
VMware, Inc.
VMware vMotion
ESX 4.0 introduced virtual hardware version 7. Because virtual machines running on hardware version 7 cant run on prior versions of ESX, such virtual machines can be moved using VMware vMotion only to other ESX 4.x hosts. ESX 4.x is compatible with virtual machines running on virtual hardware version 4, however, and these machines can be moved using VMware vMotion to ESX 3.x or ESX 4.x hosts. vMotion performance will increase as additional network bandwidth is made available to the vMotion network. Consider provisioning a 10Gb vMotion network interface for maximum vMotion performance. ESX opportunistically reserves CPU resources on both the source and destination hosts of a vMotion operation. In vSphere 4.1, this is 30% of a processor core for 1Gb network interfaces and 100% of a processor core for 10Gb network interfaces. Therefore leaving some unreserved CPU capacity in a cluster can help ensure that vMotion tasks get the resources required in order to fully utilize available network bandwidth.
VMware, Inc.
39
The default frequency is 300 seconds, but it can be set to anything between 60 seconds and 3600 seconds. We recommend against changing the default value, however, except in specific cases where the user would like to invoke the algorithm less frequently at the cost of potential loss in application performance.
40
VMware, Inc.
The migration threshold should be set to more aggressive levels when the following conditions are satisfied: If the hosts in the cluster are relatively homogeneous. If the virtual machines' resource utilization does not vary too much over time and you have relatively few constraints on where a virtual machine can be placed. The migration threshold should be set to more conservative levels in the converse situations. In addition to the migration threshold, DRS offers a number of advanced options that allow further control over the algorithm performance. Table 4-2 lists some of these options and explains their use. We recommend that these DRS options be left at their default values unless there is a strong reason to change them; for example, a cluster with severe resource contention on some hosts and idle capacity on others. Table 4-2. DRS Advanced Options for Performance Tuning
Advanced option name CostBenefit MinImbalance MinGoodness MaxMovesPerHost Description Whether to take migration cost into account Used to compute target imbalance Minimum improvement in cluster imbalance required for each move Maximum number of moves per host recommended per invocation Default Value 1 50 Adaptive Adaptive Most Aggressive Value 0 (No cost-benefit analysis) 0 0 (All moves are considered) 0 (No limit)
DRS affinity rules can keep virtual machines on the same ESX host (VM/VM affinity) or make sure they are always on different hosts (VM/VM anti-affinity). New in vSphere 4.1, DRS affinity rules can also be used to make sure a group of virtual machines runs only on (or has a preference for) a specific group of ESX hosts (VM/Host affinity) or never runs on (or has a preference against) a specific group of hosts (VM/Host anti-affinity). In most cases leaving the affinity settings unchanged will provide the best results. In rare cases, however, specifying affinity rules can help improve performance. To change affinity settings select a cluster from within the vSphere Client, choose the Summary tab, click Edit Settings, choose Rules, click Add, enter a name for the new rule, choose a rule type, and proceed through the GUI as appropriate for the rule type you selected. Besides the default setting, the three affinity setting types are: Keep Virtual Machines Together can improve performance due to lower latencies of communication between machines. Separate Virtual Machines maintains maximal availability of the virtual machines. For instance, if they are both web server front ends to the same application, you might want to make sure that they don't both go down at the same time. Also co-location of I/O intensive virtual machines could end up saturating the host I/O capacity, leading to performance degradation. DRS currently does not make virtual machine placement decisions based on their I/O resources usage (though see Storage I/O Resource Allocation on page 27 for one way to allocate storage resources). Virtual Machines to Hosts (including Must run on..., Should run on..., Must not run on..., and Should not run on...) can be useful for clusters with software licensing restrictions or specific availability zone requirements. To allow DRS the maximum flexibility: Place virtual machines on shared datastores accessible from all hosts in the cluster. Make sure virtual machines are not connected to host devices that would prevent them from moving off of that host. Carefully select the resource settings (that is, reservations, shares, and limits) for your virtual machines.
VMware, Inc.
41
Setting reservations too high can leave few unreserved resources in the cluster, thus limiting the options DRS has to balance load. Setting limits too low could keep virtual machines from using extra resources available in the cluster to improve their performance. Use reservations to guarantee the minimum requirement a virtual machine needs, rather than what you might like it to get. Note that shares take effect only when there is resource contention. Note also that additional resources reserved by virtual machine memory overhead need to be accounted for when sizing resources in the cluster. Resource pools help improve manageability and troubleshooting of performance problems. We recommend, however, that resource pools and virtual machines not be made siblings in a hierarchy. Instead, each level should contain only resource pools or only virtual machines. This is because by default resource pools are assigned share values that might not compare appropriately with those assigned to virtual machines, potentially resulting in unexpected performance.
42
VMware, Inc.
VMware, Inc.
43
44
VMware, Inc.
VMware, Inc.
45
Avoid placing more than four FT-enabled virtual machines on a single host. In addition to reducing the possibility of saturating the network link used for logging traffic, this also limits the number of simultaneous live-migrations needed to create new secondary virtual machines in the event of a host failure. If the secondary virtual machine lags too far behind the primary (which usually happens when the primary virtual machine is CPU bound and the secondary virtual machine is not getting enough CPU cycles), the hypervisor may slow the primary to allow the secondary to catch up. The following recommendations help avoid this situation: Make sure the hosts on which the primary and secondary virtual machines run are relatively closely matched, with similar CPU make, model, and frequency. Make sure that power management scheme settings (both in the BIOS and in ESX) that cause CPU frequency scaling are consistent between the hosts on which the primary and secondary virtual machines run. Enable CPU reservations for the primary virtual machine (which will be duplicated for the secondary virtual machine) to ensure that the secondary gets CPU cycles when it requires them. Though timer interrupt rates do not significantly affect FT performance, high timer interrupt rates create additional network traffic on the FT logging NIC. Therefore, if possible, reduce timer interrupt rates as described in Guest Operating System CPU Considerations on page 31.
46
VMware, Inc.
VMware, Inc.
47
48
VMware, Inc.
Glossary
ALUA (Asymmetric Logical Unit Access) A feature included in some storage arrays that allows the array itself to designate paths as Active Optimized. AMD Virtualization (AMD-V) AMDs version of hardware-assisted CPU virtualization, included in some 64-bit AMD processors. See also Virtualization Assist. AMD-Vi AMDs version of hardware-assisted I/O MMU, included in some 64-bit Intel processors, also called AMD I/O Virtualization or IOMMU. See also I/O MMU.
Ballooning A technique used in VMware ESX to reclaim the guest memory pages that are considered the least valuable by the guest operating system. This is accomplished using the vmmemctl driver, which is installed as part of the VMware Tools suite. Checksum Offload An option enabling a network adapter to calculate the TCP checksum, thus reducing CPU load. Clone A copy of a virtual machine. See also Full Clone and Linked Clone. Console See VMware Virtual Machine Console. Core A processing unit. Often used to refer to multiple processing units in one package (a so-called multi-core CPU). Also used by Intel to refer to a particular family of processors (with the Core microarchitecture). Note that the Intel Core brand did not include the Core microarchitecture. Instead, this microarchitecture began shipping with the Core 2 brand.
Distributed Power Management (DPM) A feature that uses DRS to unload servers, allowing them to be placed into standby, and thereby saving power. When the load increases, the servers can be automatically brought back online. Distributed Resource Management (DRS) A feature that monitors utilization across resource pools and uses vMotion to move running virtual machines to other servers.
VMware, Inc.
49
E1000 One of the virtual network adapters available in a virtual machine running in ESX. The E1000 adapter emulates an Intel E1000 device. See also vlance and VMXNET. Enhanced VMXNET One of the virtual network adapters available in a virtual machine running in ESX. The Enhanced VMXNET adapter is a high-performance paravirtualized device with drivers (available in VMware Tools) for many guest operating systems. See also VMXNET, VMXNET3, E1000, vlance, and NIC Morphing. EPT (Extended Page Tables) Intels implementation of hardware virtual MMU.
Fault Tolerance (FT) A feature in vSphere 4.x that runs a secondary copy of a virtual machine on a secondary host and seamlessly switches to that secondary copy in the event of failure of the primary host. Fibre Channel A networking technology used for storage. See also iSCSI, NAS, NFS, and SAN. Full Clone A copy of the original virtual machine that has no further dependence on the parent virtual machine. See also Linked Clone.
Growable Disk A type of virtual disk in which only as much host disk space as is needed is initially set aside, and the disk grows as the virtual machine uses the space. Also called thin disk. See also Preallocated Disk. Guest A virtual machine running within VMware Workstation. See also Virtual Machine. Guest Operating System An operating system that runs inside a virtual machine. See also Host Operating System.
Hardware Abstraction Layer (HAL) A layer between the physical hardware of a computer and the software that runs on that computer designed to hide differences in the underlying hardware, thus allowing software to run on a range of different architectures without being modified for each one. Windows uses different HALs depending, among other factors, on whether the underlying system has one CPU (Uniprocessor (UP) HAL) or multiple CPUs (Symmetric Multiprocessor (SMP) HAL). See also Kernel. Hardware Virtual MMU A feature of some recent CPUs that performs virtualization of the memory management unit (MMU) in hardware, rather than in the virtualization layer. Also called RVI or NPT by AMD and EPT by Intel. Hardware Virtualization Assist See Virtualization Assist. High Availability (HA) VMware High Availability is a product that continuously monitors all physical servers in a resource pool and restarts virtual machines affected by server failure. Host Bus Adapter (HBA) A device that connects one or more peripheral units to a computer and manages data storage and I/O processing (often for Fibre Channel, IDE, or SCSI interfaces).An HBA can be physical (attached to a host) or virtual (part of a virtual machine).
50
VMware, Inc.
Glossary
Hyper-Threading A processor architecture feature that allows a single processor to execute multiple independent threads simultaneously. Hyper-threading was added to Intel's Xeon and Pentium 4 processors. Intel uses the term package to refer to the entire chip, and logical processor to refer to each hardware thread. Also called symmetric multithreading (SMT).
Independent Virtual Disk Independent virtual disks are not included in snapshots. Independent virtual disks can in turn be either Persistent or Nonpersistent. Intel VT-x Intels version of hardware-assisted CPU virtualization, included in some 64-bit Intel processors. See also Virtualization Assist. Intel VT-d Intels version of hardware-assisted I/O MMU, included in some 64-bit Intel processors, also called Intel Virtualization Technology for Directed I/O. See also I/O MMU. I/O MMU A processor feature that remaps I/O DMA transfers and device interrupts. This can allow virtual machines to have direct access to hardware I/O devices, such as network cards. See also AMD Vi and Intel VT-d. iSCSI A protocol allowing SCSI commands to be transmitted over TCP/IP (typically using ordinary Ethernet cabling). An iSCSI client is called an initiator (can be software or hardware); an iSCSI server is called a target.
Jumbo frames Ethernet frames with a payload of more than 1,500 bytes. Because there is a CPU cost per network packet, larger packets can reduce the CPU cost of network traffic. Not all Gigabit Ethernet cards or switches support jumbo frames. Jumbo frames are supported by the Enhanced VMXNET and the VMXNET3 virtual network adapters (but not by the normal VMXNET adapter). Kernel The heart of an operating system. The kernel usually includes the functionality of a Hardware Abstraction Layer (HAL). Though applying to any operating system, the term is more often used in reference to Linux than to Windows. Large Pages A feature offered by most modern processors allowing the TLB (translation lookaside buffer) to index 2MB or 4MB pages in addition to the standard 4KB pages. Linked Clone A copy of the original virtual machine that must have access to the parent virtual machines virtual disk(s). The linked clone stores changes to the virtual disk(s) in a set of files separate from the parents virtual disk files. See also Full Clone. LRO (Large Receive Offload) A method of increasing network receive throughput included in some network adapters. LUN (Logical Unit Number) A number identifying a single logical unit, can represent a single disk or a partition on an array. Used in many storage technologies, including SCSI, iSCSI, and Fibre Channel.
VMware, Inc.
51
Management User Interface (MUI) A web-based interface to previous versions of ESX Server. For ESX Server 3.0 and later the functionality of the MUI has largely been replaced by the Virtual Infrastructure Client (VI Client) and the vSphere Client. Memory Compression One of a number of techniques used by ESX to allow memory overcommitment. MMU (Memory Management Unit) Part of a computers hardware that acts as an interface between the core of the CPU and main memory. Typically part of the CPU package in modern processors.
NAS See Network Attached Storage. Native Execution Execution of an application directly on a physical server, as contrasted with running the application in a virtual machine. Native System A computer running a single operating system, and in which the applications run directly in that operating system. NetQueue A technology that significantly improves performance of 10 Gigabit Ethernet network adapters in virtualized environments. Network-Attached Storage (NAS) A storage system connected to a computer network. NAS systems are file-based, and often use TCP/IP over Ethernet (although there are numerous other variations). See also Storage Area Network. Network File System (NFS) A specific network file system protocol supported by many storage devices and operating systems. Traditionally implemented over a standard LAN (as opposed to a dedicated storage network). Network I/O Control (NetIOC) A vSphere feature that allows the allocation of network bandwidth to six network resource groups: vMotion, NFS, iSCSI, Fault Tolerance, virtual machine, and management. NIC Historically meant network interface card. With the recent availability of multi-port network cards, as well as the inclusion of network ports directly on system boards, the term NIC is now sometimes used to mean network interface controller (of which there may be more than one on a physical network card or system board). NIC Morphing The automatic conversion on some guest operating systems from the vlance virtual network adapter to the higher-performance VMXNET virtual network adapter. NIC Team The association of multiple NICs with a single virtual switch to form a team. Such teams can provide passive failover and share traffic loads between members of physical and virtual networks. Non-Uniform Memory Access (NUMA) A computer architecture in which memory located closer to a particular processor is accessed with less delay than memory located farther from that processor.
52
VMware, Inc.
Glossary
Nonpersistent Disk All disk writes issued by software running inside a virtual machine with a nonpersistent virtual disk appear to be written to disk, but are in fact discarded after the session is powered down. As a result, a disk in nonpersistent mode is not modified by activity in the virtual machine. See also Persistent Disk. NPT (Nested Page Tables) AMDs implementation of hardware virtual MMU. Also called RVI.
Pacifica A code name for AMDs version of virtualization assist, included in some 64-bit AMD processors. See AMD Virtualization. Paravirtualization Paravirtualization is a technique in which a modified guest operating system kernel communicates to the hypervisor its intent to perform privileged CPU and memory operations. See also VMI. PCI (Peripheral Component Interconnect) A computer bus specification. Now largely being superseded by PCIe. PCI-X () A computer bus specification. Similar to PCI, but twice as wide and with a faster clock. Shares some compatibility with PCI devices (that is, PCI-X cards can sometimes be used in PCI slots and PCI cards can sometimes be used in PCI-X slots). PCIe (PCI Express) A computer bus specification. PCIe is available in a variety of different capacities (number of lanes): x1, x2, x4, x8, x16, and x32. Smaller cards will fit into larger slots, but not the reverse. PCIe is not slot-compatible with either PCI or PCI-X. Persistent Disk All disk writes issued by software running inside a virtual machine are immediately and permanently written to a persistent virtual disk. As a result, a disk in persistent mode behaves like a conventional disk drive on a physical computer. See also Nonpersistent Disk. Physical CPU A processor within a physical machine. See also Virtual CPU. Preallocated Disk A type of virtual disk in which all the host disk space for the virtual machine is allocated at the time the virtual disk is created. See also Growable Disk. PVSCSI A virtual storage adapter that offers a significant reduction in CPU utilization as well as potentially increased throughput compared to the default virtual storage adapters.
RAID (Redundant Array of Inexpensive Disks) A technology using multiple hard disks to improve performance, capacity, or reliability. Raw Device Mapping (RDM) The use of a mapping file in a VMFS volume to point to a raw physical device. Receive-side scaling (RSS) Allows network packet receive processing to be scheduled in parallel on multiple processors. RVI (Rapid Virtualization Indexing) AMDs implementation of hardware virtual MMU. Also called NPT.
VMware, Inc.
53
SAN See Storage Area Network. Secure Virtual Machine (SVM) Another name for AMDs version of virtualization assist, included in some 64-bit AMD processors. See AMD Virtualization. Service Console The service console boots the systems and runs support, management, and administration applications. Shadow Page Tables A set of page tables maintained by ESX that map the guest operating systems virtual memory pages to the underlying pages on the physical machine. Snapshot A snapshot preserves the virtual machine just as it was when you took that snapshot including the state of the data on all the virtual machine's disks and whether the virtual machine was powered on, powered off, or suspended. VMware Workstation lets you take a snapshot of a virtual machine at any time and revert to that snapshot at any time. Socket A connector that accepts a CPU package. With multi-core CPU packages, this term is no longer synonymous with the number of cores. Storage Area Network (SAN) A storage system connected to a dedicated network designed for storage attachment. SAN systems are usually block-based, and typically use the SCSI command set over a Fibre Channel network (though other command sets and network types exist as well). See also Network-Attached Storage. Storage I/O Control (SIOC) A vSphere feature that allows an entire datastores I/O resources to be proportionally allocated to the virtual machines accessing that datastore. Storage vMotion A feature allowing running virtual machines to be migrated from one datastore to another with no downtime. Symmetric Multiprocessor (SMP) A multiprocessor architecture in which two or more processors are connected to a single pool of shared memory. See also Uniprocessor (UP). Symmetric Multithreading (SMT) Another name for hyper-threading. See also Hyper-Threading.
Template A virtual machine that cannot be deleted or added to a team. Setting a virtual machine as a template protects any linked clones or snapshots that depend on the template from being disabled inadvertently. Thick Disk A virtual disk in which all the space is allocated at the time of creation. Thin Disk A virtual disk in which space is allocated as it is used. Thrashing A situation that occurs when virtual or physical memory is not large enough to hold the full working set of a workload. This mismatch can cause frequent reading from and writing to a paging file, typically located on a hard drive, which can in turn severely impact performance.
54
VMware, Inc.
Glossary
TLB (Translation Lookaside Buffer) A CPU cache used to hold page table entries. TSO (TCP Segmentation Offload) A feature of some NICs that offloads the packetization of data from the CPU to the NIC. TSO is supported by the E1000, Enhanced VMXNET, and VMXNET3 virtual network adapters (but not by the normal VMXNET adapter).
Uniprocessor (UP) A single-processor architecture. See also Symmetric Multiprocessor (SMP). Vanderpool A code name for Intels version of virtualization assist, included in some 64-bit Intel processors. See Virtualization Technology. Virtual CPU (vCPU) A processor within a virtual machine. ESX 4.x supports up to eight virtual CPUs per virtual machine. Virtual Disk A virtual disk is a file or set of files that appears as a physical disk drive to a guest operating system. These files can be on the host machine or on a remote file system. When you configure a virtual machine with a virtual disk, you can install a new operating system into the disk file without the need to repartition a physical disk or reboot the host. Virtual Machine A virtualized x86 PC environment in which a guest operating system and associated application software can run. Multiple virtual machines can operate on the same host system concurrently. Virtual SMP A VMware proprietary technology that supports multiple virtual CPUs in a single virtual machine. Virtual Switch (vSwitch) A software equivalent to a traditional network switch. Virtualization Assist A general term for technology included in some 64-bit processors from AMD and Intel that can allow 64-bit operating systems to be run in virtual machines (where supported by VMware Workstation). More information is available in VMware knowledge base article 1901. See also AMD Virtualization and Virtualization Technology. Virtualization Overhead The cost difference between running an application within a virtual machine and running the same application natively. Since running in a virtual machine requires an extra layer of software, there is by necessity an associated cost. This cost may be additional resource utilization or decreased performance. Virtualization Technology (VT) Intels version of virtualization assist, included in some 64-bit Intel processors. See also Virtualization Assist. vlance One of the virtual network adapters available in a virtual machine running in ESX. The vlance adapter emulates an AMD PCnet32 device. Note that in some cases NIC morphing can automatically convert a vlance device into a VMXNET device. See also NIC Morphing, E1000, and VMXNET. VMDirectPath I/O A vSphere feature that leverages Intel VT-d and AMD-Vi hardware support to allow guest operating systems to directly access hardware devices.
VMware, Inc.
55
VMFS (Virtual Machine File System) A high performance cluster file system. VMI (Virtual Machine Interface) A paravirtualization interface supported by ESX. See also Paravirtualization. vMotion A feature allowing running virtual machines to be migrated from one physical server to another with no downtime. VMware Infrastructure Client (VI Client) A graphical user interface used to manage ESX hosts or VirtualCenter servers. Renamed vSphere Client in vSphere 4.0. VMware vCenter Update Manager Provides a patch management framework for VMware vSphere. It can be used to apply patches, updates, and upgrades to VMware ESX and ESXi hosts, Windows and Linux virtual machines, VMware Tools, and so on. VMware vStorage APIs for Array Integration (VAAI) A set of APIs that can significantly improve storage scalability by offloading a number of operations to the storage device instead of performing them in ESX. VMware Tools A suite of utilities and drivers that enhances the performance and functionality of your guest operating system. Key features of VMware Tools include some or all of the following, depending on your guest operating system: an SVGA driver, a mouse driver, the VMware Tools control panel, and support for such features as shared folders, shrinking virtual disks, time synchronization with the host, VMware Tools scripts, and connecting and disconnecting devices while the virtual machine is running. VMXNET One of the virtual network adapters available in a virtual machine running in ESX. The VMXNET adapter is a high-performance paravirtualized device with drivers (available in VMware Tools) for many guest operating systems. See also Enhanced VMXNET, VMXNET3, E1000, vlance, and NIC Morphing. VMXNET3 (VMXNET Generation 3) The latest in the VMXNET family of paravirtualized network drivers. Requires virtual hardware version 7. vSphere Client. A graphical user interface used to manage ESX hosts or VirtualCenter servers. Previously called the VMware Infrastructure Client (VI Client).
Wake-on-LAN A feature allowing a computer system to be powered on or brought out of suspend by sending a command over Ethernet.
56
VMware, Inc.
Index
Numerics
10 Gigabit Ethernet and NetQueue 13 64-bit DMA addresses 13
A
active/active storage arrays policy 26 active/passive storage arrays policy 26 affinity rules DRS 41 alignment file system partitions 26 ALUA 27 AMD I/O Virtualization 10 AMD Opteron 19 AMD PCnet32 device 33 AMD PowerNow! 14 AMD-V 9, 14 AMD-Vi 10 Asymmetric Logical Unit Access 27
CD drives 15 checksum offload 13 COM ports 15 compression memory 23 copy offload 11 CPU compatibility 9 overhead 17 reservations 17 CPU affinity and hyper-threading 19 CPU overcommitment 17 CPU virtualization hardware-assisted 9
D
database Oracle 37 SQL Server 37 disk shares 27 disks eager-zeroed 25 independent nonpersistent 25 independent persistent 25 lazy-zeroed 26 snapshot 25 thick 25 thin 26 Distributed Power Management See DPM Distributed Resource Scheduler See DRS DPM (Distributed Power Management) 16, 43 and reserve capacity 43 automatic vs. manual mode 43 DRS (Distributed Resource Scheduler) 16, 40 affinity rules 41 algorithm frequency 40 and limits 35, 41 and reservations 35, 41 and shares 35, 41 DVD drives 15
B
backups scheduling 29 balloon driver and VMware Tools 29 ballooning memory 22 binary translation 9, 20 BIOS settings 14 Block zeroing 11 bridge chip 13 BT (binary translation) 9, 20 bus architecture PCI 13 PCI Express 13 PCIe 13 PCI-X 13 BusLogic virtual storage adapter 32 using custom driver 32
E
E1000 device 33 eager-zeroed disks 25 Enhanced AMD PowerNow! 14
C
C1E halt state 14
VMware, Inc.
57
Enhanced Intel SpeedStep 14 Enhanced vMotion Compatibility 40 Enhanced VMXNET 33 EPT (extended page tables) 9, 14 esxtop and resxtop 17, 27 Ethernet 10 Gigabit
I
I/O block sizes 32 I/O memory management unit 10 I/O MMU 10 IBM X-Architecture 19 idle loops 18 independent nonpersistent virtual disks 25 independent persistent virtual disks 25 Intel E1000 device 33 Intel Nehalem 19 Intel SpeedStep 14 Intel Virtualization Technology for Directed I/O 10 Intel VT-x 9, 14 interleaved memory 19 iSCSI and Ethernet 12 software-initiated
and NetQueue
13
and iSCSI 12 and NFS 12 EVC (Enhanced vMotion Compatibility) 40 extended page tables 9, 14
F
Fault Tolerance See FT file system partitions alignment 26 fixed path policy 26 Floppy drives 15 FT (Fault Tolerance) 21, 45 full copy 11
12
J
Java virtual machine max heap memory size 36 jumbo frames 13, 33
H
HA (High Availability) 43, 44 failure detection time 44 heartbeats 44 primary hosts 44 HAL UP vs. SMP 18 hardware BIOS settings 14 minimum configuration 9 hardware compatibility list 9 hardware version 7 16, 33 and vMotion 39 hardware virtualization 9, 20 Hardware-accelerated cloning 11 hardware-assisted CPU virtualization configuring ESX for 20 hardware-assisted MMU virtualization 10, 20 configuring ESX for 20 hardware-assisted virtualization 9 HBAs multiple 11 High Availability See HA high-memory DMA 13 host power management 43 HPM 43 HV (hardware virtualization) 9, 20 hyper-threading 14, 18 CPU numbers 19
K
kernel UP vs. SMP 18
L
large pages 24 large receive offloads 13 lazy-zeroed disks 26 limits and DRS 35, 41 LPT ports 15 LSILogic virtual storage adapter 32
M
memory ballooning 22 compression 23 large pages 24 overcommitment 23 overhead 22 page sharing 22 reservation 23 sizing 22 swapping 22, 23
23
58
VMware, Inc.
Index
hardware-assisted 9 MMU virtualization 9 hardware-assisted 9 most recently used path policy 26 MRU path policy 26 MS-DOS idle loops 18 MTU size 33
N
NAS network protocol processing 12 Nehalem 19 nested page tables 9 NetIOC 28 NetQueue 13 Network I/O Control 28 network throughput and CPU utilization 28 NFS and Ethernet 12 NIC team 13 NICs autonegotiation 13 duplex 13 server class 13 speed 13 NO_HZ kernels 30, 31 node interleaving 14, 19 non-uniform memory access 19 NPT (nested page tables) 9 NTP (Nested Page Tables) 29 NUMA (non-uniform memory access) 19 wide 20
PCI Express bus architecture 13 PCIe bus architecture 13 PCI-X bus architecture 13 PCnet32 device 33 processor C-states 43 processor P-states 43 PVSCSI virtual storage adapter 16, 32
Q
queue depth 11 driver 27 virtual SCSI driver 32
R
rapid virtualization indexing 9, 14 raw device mapping 25 RDM 25 receive buffers insufficient 33 receive-side scaling 34 reservations and DRS 35, 41 use of 35 resource pools 35, 42 round robin path policy 26 RSS 34 RVI (rapid virtualization indexing) 9, 14
S
Scalable lock management 11 shadow page tables 10 shares and DRS 35, 41 use of 35 SIOC 27 SLES and paravirtualization 30 SMT 18 snapshot virtual disks 25 Solaris idle loops 18 SQL Server database 37 storage adapter BusLogic 32 LSILogic 32 PVSCSI 32 storage arrays active/active policy 26 active/passive policy 26 Storage I/O Control 27
59
O
Opteron 19 Optical drives 15 Oracle database 37 overhead CPU 17
P
page sharing memory 22 paravirtual timer 30 paravirtualization 29 path policy fixed 26 most recently used 26 round robin 26 PCI bus architecture 13
VMware, Inc.
storage processors assigning 11 Storage vMotion 11, 39 SVGA frame buffer 22 swapping memory 22, 23 symmetric multithreading 18
T
TCP segmentation offload 13, 33 thick disks 25 thin disks 26 tickless timer 30 tickless timer kernels 31 timekeeping 29 timer interrupt rates Linux 31 Windows 31 timing within virtual machines 30 TLB (translation lookaside buffer) 10 translation lookaside buffer 10 TSO 13, 33 Turbo Mode 14
U
Ubuntu and paravirtualization 30 Update Manager 36 USB controllers 15
V
VAAI (VMware vStorage APIs for Array Integration) 11, 25 vCenter 36 alarm settings 36 database 37 statistics level 37 supported maximums 36 Update Manager 36 vCenter Converter 36 vCPUs number of 17 virtual hardware version 7 33 and vMotion 39 virtual machine interface 29 virtual machine monitor 9, 20 virtual network adapter E1000 33 vlance 33 VMXNET family 33 virus scanning programs scheduling 29
vlance virtual network device 33 VLANs and storage 11, 12 VMDirectPath I/O 28 VMI 21, 29 VMI paravirtual timer 30 vmkfstools 26 VMM (virtual machine monitor) 9, 20 vMotion 39 and network adapters 40 compatible hosts and DPM 43 CPU compatibility 40 VMware High Availability 44 VMware Paravirtual storage adapter See PVSCSI VMware Storage vMotion 39 VMware Tools 32 and BusLogic SCSI driver 29 balloon driver 29 VMware vCenter 36 VMware vCenter Converter 36 VMware vCenter Update Manager 47 VMware vSphere Client 38 VMware vStorage APIs for Array Integration See VAAI VMXNET 33 VMXNET Generation 3 See VMXNET3 VMXNET3 16 VPNs and storage 11 vSphere Client 38 vSphere Web Services SDK 38 vSwitch 13 VT-d 10 VT-x 9, 14
W
wake-on-LAN (WOL) and DPM 43 wide NUMA 20 Windows 2000 idle loops 18 Windows 7 HAL 18 Windows Server 2008 HAL 18 Windows Time Service 29 Windows Vista HAL 18
X
X-Architecture 19
60
VMware, Inc.