XenServer Performance Tuning#
This chapter provides recommendations on optimizing performance for VMs running with NVIDIA vGPU on XenServer.
XenServer Tools#
To get maximum performance out of a VM running on XenServer, regardless of whether you are using NVIDIA vGPU, you must install XenServer tools within the VM. Without the optimized networking and storage drivers that the XenServer tools provide, remote graphics applications running on NVIDIA vGPU will not deliver maximum performance.
Using Remote Graphics#
NVIDIA vGPU implements a console VGA interface that permits the VM’s graphics output to be viewed through XenCenter’s console tab. This feature allows the desktop of a vGPU-enabled VM to be visible in XenCenter before any NVIDIA graphics driver is loaded in the virtual machine, but it is intended solely as a management convenience; it only supports output of vGPU’s primary display and isn’t designed or optimized to deliver high frame rates.
To deliver high frames from multiple heads on vGPU, NVIDIA recommends that you install a high-performance remote graphics stack such as Citrix Virtual Apps and Desktops with HDX 3D Pro remote graphics and, after the stack is installed, disable vGPU’s console VGA.
Disabling Console VGA#
The console VGA interface in vGPU is optimized to consume minimal resources, but when a system is loaded with a high number of VMs, disabling the console VGA interface entirely may yield some performance benefit.
Once you have installed an alternate means of accessing a VM (such as Citrix Virtual Apps and Desktops or a VNC server), its vGPU console VGA interface can be disabled by creating the vGPU by using the xe command, and specifying plugin parameters for the group to which the vGPU belongs:
Create the vGPU.
[root@xenserver ~]# xe vgpu-create gpu-group-uuid=<gpu-group-uuid> vgpu-type-uuid=<vgpu-type-uuid> vm-uuid=<vm-uuid>
This command returns
<vgpu-uuid>as stored in XAPI.Specify plugin parameters for the group to which the vGPU belongs.
[root@xenserver ~]# xe vgpu-param-set uuid=<vgpu-uuid> extra_args=disable_vnc=1
Caution
If you disable console VGA before you have installed or enabled an alternate mechanism to access the VM (such as Citrix Virtual Apps and Desktops), you will not be able to interact with the VM once it has booted.
You can recover console VGA access by making one of the following changes:
Removing the
extra_argskey the from group to which the vGPU belongsRemoving
disable_vnc=1from theextra_argsorvgpu_extra_argskeySetting
disable_vnc=0, for example:[root@xenserver ~]# xe vgpu-param-set uuid=<vgpu-uuid> extra_args=disable_vnc=0