NUC + ESXi + iGPU Passthrough + HW transcoding = 100% CPU

Hi! I’ve virtualized PMS (ubuntu server 18.04.4) over ESX server (NUC) and hardware transcoding was working (doing iGPU passthrough - Intel Iris Graphics 655) for a few months without any problem. Last week I heard NUC fan working at 100% and after a few checks I realized that the plex server was consuming 90-100% of the CPU. I ran intel_gpu_top and it showed that the GPU was apparently being used during transcoding, however CPU usage is still extremely high when previously it was at most between 0-5%.

  • HW transcoding log:
    tail -f Plex\ Media\ Server.log | grep -i hardware
    Jul 01, 2020 20:56:43.556 [0x7fb988ff9700] DEBUG - Codecs: hardware transcoding: testing API vaapi
    Jul 01, 2020 20:56:43.558 [0x7fb988ff9700] DEBUG - Codecs: hardware transcoding: testing API vaapi
    Jul 01, 2020 20:56:43.560 [0x7fb988ff9700] DEBUG - Codecs: hardware transcoding: testing API vaapi
    Jul 01, 2020 20:56:43.562 [0x7fb988ff9700] DEBUG - Codecs: hardware transcoding: testing API vaapi
    Jul 01, 2020 20:56:44.837 [0x7fb989ffb700] DEBUG - TPU: hardware transcoding: using hardware decode accelerator vaapi
    Jul 01, 2020 20:56:44.846 [0x7fb989ffb700] DEBUG - TPU: hardware transcoding: zero-copy support present
    Jul 01, 2020 20:56:44.846 [0x7fb989ffb700] DEBUG - TPU: hardware transcoding: using zero-copy transcoding
    Jul 01, 2020 20:56:44.846 [0x7fb989ffb700] DEBUG - Codecs: hardware transcoding: testing API vaapi
    Jul 01, 2020 20:56:44.847 [0x7fb989ffb700] DEBUG - TPU: hardware transcoding: final decoder: vaapi, final encoder: vaapi
    Jul 01, 2020 20:56:48.008 [0x7fb989ffb700] DEBUG - TPU: hardware transcoding: using hardware decode accelerator vaapi
    Jul 01, 2020 20:56:48.051 [0x7fb989ffb700] DEBUG - TPU: hardware transcoding: zero-copy support present
    Jul 01, 2020 20:56:48.051 [0x7fb989ffb700] DEBUG - TPU: hardware transcoding: using zero-copy transcoding
    Jul 01, 2020 20:56:48.051 [0x7fb989ffb700] DEBUG - Codecs: hardware transcoding: testing API vaapi
    Jul 01, 2020 20:56:48.052 [0x7fb989ffb700] DEBUG - TPU: hardware transcoding: final decoder: vaapi, final encoder: vaapi

  • intel_gpu_top output:

                        render busy:  43%: ████████▋                              render space: 17/4096
                        task  percent busy
                         GAM:  80%: ████████████████        vert fetch: 0 (0/sec)
                          CS:  43%: ████████▋               prim fetch: 0 (0/sec)
                         TSG:  38%: ███████▋             VS invocations: 0 (0/sec)
                         VFE:  17%: ███▌                 GS invocations: 0 (0/sec)
                        GAFS:   9%: █▉                        GS prims: 0 (0/sec)
                          RS:   0%:                      CL invocations: 0 (0/sec)
                         TDG:   0%:                           CL prims: 0 (0/sec)
                         SVG:   0%:                      PS invocations: 0 (0/sec)
                          CL:   0%:                      PS depth pass: 0 (0/sec)
                          SF:   0%:
                          VF:   0%:
                        GAFM:   0%:
                          VS:   0%:
                         SOL:   0%:
    

I tried a lot of things to fix the issue:

  • Disable and enable iGPU from ESX and rebind to PMS virtual machine
  • Reapply advanced virtual machine params:
    • svga.present: FALSE
    • pciHole.start: 2048 (virtual machine has 4GB RAM)
  • Install a new PMS over Debian 10
  • Updating ESX to 7.0 (clean install)

Anything was helpful, CPU load is high and I’m feel a little bit frustrated.

Can anyone help me?

Thanks!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.