VMware Horizon Community
uio201110141
Contributor
Contributor

How to debug very high CPU usage during BLAST [Extreme] session?

Hi all,

I have abnormally high CPU usage for what I assume is the process responsible for H.264 screen encoding -- `VMBlastW.exe`. I am connected on a LAN with the Horizon Client. I have to admit that we have several VMs beside the one I am having trouble with, and I recall we've had a number of well behaving installations where the protocol process on a VM did not account for more than 5% CPU usage in similar scenarios. So this is an anomaly, but I am not sure where to approach it. The scenario is Windows Media Player playing a [720p] movie (Big Buck Bunny 720p, AVI) which occupies 1/3 of the screen area. The Windows Media Player itself does not use more than 20% of the virtual CPU, so I don't think that the codec etc really matter here. What seems to matter is the amount of screen area being updated, affecting the H.264 encoding of the screen framebuffer.

The VM is set up with a vGPU that is backed by Nvidia GRID K1 card, profile K120Q (the bottom baseline). The CPU profile of the VM is a 2-socket setup, each CPU with 1 core. 4GB of RAM. Anyway, I think that 20% CPU for movie decoding sort of gives away the approximate computing power of the VM, give or take. That the aforementioned VMBlastW.exe process using never less than 40% of the CPU just for encoding and sending the screen over LAN, to me seems very abnormal, not the less because it is supposed to offload the H.264 encoding to the NVidia vGPU. When playing the movie full screen, Windows Media Player still tops at less than 25% CPU, while the VMBlastW.exe process averages at 80%!

The image and motion quality themselves are very adequate, therefore I judge packet loss can't be that high.

The ESX host running the VM is a Dell PowerEdge R730 rack server with an Intel Xeon E5-2667 v3 3.2Ghz with 256GB RAM. vSphere tells me that only 2,33Ghz out of the "virtual total" of 51,18Ghz on the virtualized host CPU is used. RAM is about half free. I mean, I don't see the host load at all. Yet, the Blast process maxes out the virtual CPU on the VM.

I have logs to show if required, I have confirmed that H.264 is used (as opposed to JPG/PNG which BLAST also can do) and the transport is TCP, not UDP, but I don't think this figures into the problem.

What can I do to get to the bottom of this? Maybe the system falls back on something, but I need to know what and somehow try to control it.

Thanks.

Reply
0 Kudos
3 Replies
RandyDGroves
Enthusiast
Enthusiast

Have you tried using PCoIP instead? The H.264 encoder requires significantly more CPU than the PCoIP encoder.

Reply
0 Kudos
NetherMark
Contributor
Contributor

We are having the exact same issue right now.

But we are using VMWare Horizon View 7.3.2 without any grid cards. 3d Acceleration is set to allow and managed by vSphere.

When the VMBlastS.exe (not VMBlastw.exe) is consuming 50% cpu constantly the users are also having trouble logging on. The screen just stays black or the session gets disconnected. When the process is killed (and auto restarted) the machine is fine again. People can login and cpu usage is normal (2% or something in idle).

Did you ever find a solution to your problem?

Reply
0 Kudos
TWCCorrigan
Contributor
Contributor

Just curious because we also have experienced this problem Intermittently (about 5 times now since 3/17/2021 (our first report of this).  What client hardware are you using to get the users logged into their VDI sessions?  We use 10ZiG Zero client's model 5848qv with the following:

Enabled H264 (on the 10ZiG zero client)

Enabled H265(HEVC) (on the 10ZiG zero client)

High Color Accuracy Enabled (on the 10ZiG zero client)

Reply
0 Kudos