4.10. Configuring High Performance Virtual Machines, Templates, and Pools

You can configure a virtual machine for high performance, so that it runs with performance metrics as close to bare metal as possible. When you choose high performance optimization, the virtual machine is configured with a set of automatic, and recommended manual, settings for maximum efficiency.

The high performance option is only accessible in the Administration Portal, by selecting High Performance from the Optimized for dropdown list in the Edit or New virtual machine, template, or pool window. This option is not available in the VM Portal.

The high performance option is supported by Red Hat Virtualization 4.2 and later. Therefore, it is not available for earlier compatibility versions.

Virtual Machines

If you change the optimization mode of a running virtual machine to high performance, some configuration changes require restarting the virtual machine.

To change the optimization mode of a new or existing virtual machine to high performance, you may need to make manual changes to the cluster and to the pinned host configuration first.

A high performance virtual machine has certain limitations, because enhanced performance has a trade-off in decreased flexibility:

  • A high performance virtual machine cannot be migrated.
  • If pinning is set for CPU threads, IO threads, emulator threads, or NUMA nodes, according to the recommended settings, only a subset of cluster hosts can be assigned to the high performance virtual machine.
  • Many devices are automatically disabled, which limits the virtual machine’s usability.

Templates and Pools

High performance templates and pools are created and edited in the same way as virtual machines. If a high performance template or pool is used to create new virtual machines, those virtual machines will inherit this property and its configurations. Certain settings, however, are not inherited and have the following limitations:

  • CPU pinning cannot be set for templates. CPU pinning must be manually set for virtual machines and for pools that are created from high performance virtual machines.
  • Virtual NUMA and NUMA pinning topology cannot be set for templates or pools. Virtual NUMA must be manually set when creating a virtual machine based on a high performance template.
  • IO and emulator threads pinning topology is not supported for pools.

4.10.1. Creating a High Performance Virtual Machine, Template, or Pool

To create a high performance virtual machine, template, or pool:

  1. In the New or Edit window, select High Performance from the Optimized for drop-down menu.

    Selecting this option automatically performs certain configuration changes to this virtual machine, which you can view by clicking different tabs. You can change them back to their original settings or override them. (See Automatic High Performance Configuration Settings for details.) If you change a setting, its latest value is saved.

  2. Click OK.

    If you have not set any manual configurations, the High Performance Virtual Machine/Pool Settings screen describing the recommended manual configurations appears.

    If you have set some of the manual configurations, the High Performance Virtual Machine/Pool Settings screen displays the settings you have not made.

    If you have set all the recommended manual configurations, the High Performance Virtual Machine/Pool Settings screen does not appear.

  3. If the High Performance Virtual Machine/Pool Settings screen appears, click Cancel to return to the New or Edit window to perform the manual configurations. See [Configuring_Recommended_Manual_Settings] for details.

    Alternatively, OK to ignore the recommendations. The result may be a drop in the level of performance.

  4. Click OK.

    You can view the optimization type in the General tab of the details view of the virtual machine, pool, or template.

Note

Certain configurations can override the high performance settings. For example, if you select an instance type for a virtual machine before selecting High Performance from the Optimized for drop-down menu and performing the manual configuration, the instance type configuration will not affect the high performance configuration. If, however, you select the instance type after the high performance configurations, you should verify the final configuration in the different tabs to ensure that the high performance configurations have not been overridden by the instance type.

The last-saved configuration usually takes priority.

4.10.1.1. Automatic High Performance Configuration Settings

The following table summarizes the automatic settings. The Enabled (Y/N) column indicates configurations that are enabled or disabled. The Applies to column indicates the relevant resources:

  • VM - Virtual machine
  • T - Template
  • P - Pool
  • C - Cluster

Table 4.3. Automatic High Performance Configuration Settings

SettingEnabled (Y/N)Applies to

Headless Mode (Console tab)

Y

VM, T, P

USB Support (Console tab)

N

VM, T, P

Smartcard Enabled (Console tab)

N

VM, T, P

Soundcard Enabled (Console tab)

N

VM, T, P

Enable VirtIO serial console (Console tab)

Y

VM, T, P

Do not allow migration (Host tab)

N

VM

Pass-Through Host CPU (Host tab)

Y

VM, T, P

Highly Available [a] (High Availability tab)

N

VM, T, P

No-Watchdog (High Availability tab)

N

VM, T, P

Memory Balloon Device (Resource Allocation tab)

N

VM, T, P

IO Threads Enabled [b] (Resource Allocation tab)

Y

VM, T, P

Paravirtualized Random Number Generator PCI (virtio-rng) device (Random Generator tab)

Y

VM, T, P

IO and emulator threads pinning topology

Y

VM, T

CPU cache layer 3

Y

VM, T, P

[a] Highly Available is not automatically enabled. If you select it manually, high availability should be enabled for pinned hosts only.
[b] Number of IO threads = 1

4.10.1.2. IO and Emulator Threads Pinning Topology (Automatic Settings)

The IO and emulator threads pinning topology is a new configuration setting for Red Hat Virtualization 4.2. It requires that IO threads, NUMA nodes, and NUMA pinning be enabled and set for the virtual machine. Otherwise, a warning will appear in the engine log.

Pinning topology:

  • The first two CPUs of each NUMA node are pinned.
  • If all vCPUs fit into one NUMA node of the host:

    • The first two vCPUs are automatically reserved/pinned
    • The remaining vCPUs are available for manual vCPU pinning
  • If the virtual machine spans more than one NUMA node:

    • The first two CPUs of the NUMA node with the most pins are reserved/pinned
    • The remaining pinned NUMA node(s) are for vCPU pinning only

Pools do not support IO and emulator threads pinning.

Warning

If a host CPU is pinned to both a vCPU and IO/emulator threads, a warning will appear in the log and you will be asked to consider changing the CPU pinning topology to avoid this situation.

4.10.1.3. High Performance Icons

The following icons indicate the states of a high performance virtual machine in the ComputeVirtual Machines screen.

Table 4.4. High Performance Icons

IconDescription

hp vm

High performance virtual machine

hp vm next run

High performance virtual machine with Next Run configuration

stateless hp vm

Stateless, high performance virtual machine

stateless hp vm next run

Stateless, high performance virtual machine with Next Run configuration

vm hp pool

Virtual machine in a high performance pool

vm hp pool next run

Virtual machine in a high performance pool with Next Run configuration