Project

General

Profile

Running tvheadend on an ESXi vm

Added by Dean Dal Broi over 6 years ago

Hi All,

Thought I would post this here as someone might find it useful as I have always struggled to find information on how to correctly run Tvheadend on a VMWare ESXi hosted linux VM.. Through a lot of trial and error I have the following tips to offer:

1. USB DVB-T Tuner cards: Believe it or not I have managed to get these successfully working through USB pass through. The key to getting this working correctly on ESXi 6.x upwards is to ensure ESXi does NOT load the vmkusb module and instead uses the legacy usb module as you will get many performance issues with the newer module that will manifest as lots of stream 'Continuity counter' errors. To disable the vmkusb module you need to run the following command on the ESXi terminal:
esxcli system module set -m=vmkusb -e=FALSE

2. vCPU's and CPU reservation: Although the Tvheadend app uses very little CPU, I found it to be very sensitive to CPU clock speed and interruption on CPU time due to processing in other VM's which would again manifest as lots of stream 'Continuity counter' errors. To resolve the CPU related issues I did the following:
  • Set Power Management on the ESXi host to 'High Performance'
  • Configured the CPU settings for the VM hosting Tvheadend to have 2 vCPU's, also enabling the CPU hardware assisted virtualization option and setting a CPU reservation of 1200 MHz. I found that anything below 1000 MHz was resulting in 'Continuity counter' errors.

3. Network performance: Initially I found a very slight lag in channel switching from Tvheadend clients on the network. I managed to remove this by setting the Latency Sensitivity option on the VM to 'high'

Landing on the configuration I have listed above has been achieved with LOTS of trial and error, however I now happily have Tvheadend hosted on a VM running alongside 3 other VM's on a home server without any issues around stream quality.. Hope others may find this useful.