HomeLab Stage LXVII: Horizon with vGPU

In my last episode HomeLabStage LXVI: New Monster Cluster I was blogging about the setup itself. Today I want to give you some updates:

In the meantime, my entire HomeLab / HomeDC setup is upgraded to vSphere 8. Why? Because one of my favourite features is working again: Maintenance Mode with vGPU enabled VMs!

Today let´s focus more on the VMware Horizon part. I am doing VDI / EUC projects since VMware first release of the VDM, back in the days….

Infrastructure planning is key! Here are my thoughts when designing and sizing a high performance VDI environment.

Each host inside my main cluster has still one Nvidia RTX8000 GPU installed. The Nvidia Grid version is upgraded to 15.1 and the Nvidia Licensing Appliances are running on version 2.1.

I have configured two Nvidia DLS appliances, which are running in HA mode:

The power consumption of the RTX8000 is really impressive. It took only 25W when idling with running VMs:

VMware Tools version 12.2.0 are installed in every VM, the correspondig Nvidia Guest drivers are also installed and the newest and compatible VMware Horizon agent: 8.8 (2212)

Any special tuning parameters configured? Of course!

Here are my recommendations:

VM Configuration: 6-8 vCPUs with 10 % Reservation, 16-64GB RAM (100 Reservation), enough local storage (High Performance vSAN in my case), 4GB vGPU Q profile with license in place and NVMe as the default VM controller.

Anything else? Of course!

Special vmx file configuration:

The first parameter disables the default VMware SVGA 3D display adapter and the second line disables the default Nvidia Frame Rate Limiter.

OK, any tuning inside the Operating System? Absolutely!

Microsoft Windows Tuning & VMware Horizon Blast Tuning:

VMware BLAST – These settings are stored in HKLM\Software\Policies\VMware, Inc.\VMware Blast\config

Set FileTransferState to 0 to turn off client-drive redirection.

Set ClipboardState to 0 to turn off clipboard support.

Set AudioEnabled to 0 to turn off audio support.

Set H264maxQP to 28 to force H.264 to start at higher quality and prevent it from expending bandwidth to send initial low-quality screens.

Adjust the size of the Blast codec cache to 512MB for the encoder and the decoder. The default is 256MB.

Configure the Blast Frames per Second option to 60 fps. Default is 30fps.

OK, why all these modifications? Is Horizon not running well per default? It is, but I wanted to get the maximum performance….. You know me! Tweaking and pushing it to the limits is my motto…

What devices are used inside my Horizon environment?

I am running two older PCoIP Zero2 clients, iPads, iPhones, Windows and Mac computers as well as Raspberry Pi based Thin Clients.

Raspberry Pi? Yes! I am running one Pi3 and one Pi400 (embedded inside the keyboard). How? Pretty easy with the ThinLinX distribution. It comes with a small mgmt software.

Raspberry Pi 3 for local datacenter management, connected to my KVM switch and configured with a Webbrowser.

Raspberry Pi 400 initially for customer demos and roadshows, now running as a thin client inside my garage / workshop.

The device itself is pretty nice as a thinclient. Any special setup required?

The RPi400 is capable of running a display at 4K30 resolution. With a small tweak and a powerful PSU it can run 4K60.

sudo nano /boot/config.txt

Then add the following new line to it:


I was happy with the tweak, but something was not running smooth, when connecting to my Horizon VDI desktop from the workshop / datacenter III.

My RPi400 is connected via wired 1GbE, the switch has dual 10GbE uplinks, the datacenter has enough performance and the VDI itself is pushed to its limits. What is the issue? It must have something to do with the device itself.

The H.264 decoder on the Pi 4 still has the same limits as the Pi 3, i.e. only one region with a maximum resolution of 1920×1080 can be accelerated….. That is my problem with the VDI!

After reducing the resolution to Full HD, everything is running super fine with an outstanding performance.

My Horizon setup which is based on 2 x UAG, 1 x Radius (Fault-Tolerance enabled) for 2FA, 2 x NSX-ALB, 4 x Connection Servers and several desktops (all Nvidia vGPU accelerated) is used for customer demos, as well as home requirements…. (car coding & car diagnosis)

Stay tuned for the next episodes of my HomeLab journey….

Looking for the next? Check it out here: HomeLab Stage LXVIII: NSX-ALB