XenServer 6.5, XenDesktop 7.6 high cpu usage ctxgfx.exe


My current setup is the following:
10x PowerEdge R730 2xE5-2650v3 @ 2.30Ghz with NVIDIA GRID K1

Its running XenServer 6.5 with Xendesktop 7.6 with all updates.

The Virtual Machine is configured the following:


I know the deepcompressioncodecv2 is encoding the stream on the CPU, but is it possible to use the GPU instead? Like the shadowplay and steam-in-home streaming is using? This would give a better experiance in my opinion.

Just for fun i installed steam and streamed half-life2 with 60fps @ 720p from the virutalmachine spec posted above. It was totally smooth experience.

Anyone from Nvidia have some trick up there sleve? Is it possible to disable the CPU encoding? I know this was possible in Xendesktop 5.6 with "DeepCompDisable" registry fix.

That’s a question for Citrix…

They did demonstrate that very feature during GTC 2015, but you’ll need to ask them how…

Thanks, I made a new topic in the Xendesktop forum. Do you know if the demonstration did get recorded? And if it did, can you point me to it?

Thanks for any help.

They had it demonstrated on their booth, it wasn’t covered in any sessions.

Anything come from this at Synergy? We’ve been battling this for a bit now, nice to see we might have a solution on the horizon.

Have you asked Citrix?

As it’s part of their product, and not yet released their plans are under NDA, and they will only share their plans under a 1:1 NDA discussion. We wouldn’t be able to tell you any detail until after it’s been announced.

I had the same thing. Problem is mostly CTXGFX.exe that is doing the compression. Big CPU usage is normal. Try disabled Heavy compression and "Extra colour compression" if you want it down.

I did a trick where I give (in my case) AutoCAD only affinity to Core 0/1/2 and ctxcfg.exe I gave only access to core 3 (Does the compression after GRID did the rendering etc before sending it over the line),

That way they don’t interfer with eachother. I wrote a little tool for it, PM me if you want it. Works great!

That’s a great approach, and a tool that will do it automatically would be valuable to a lot of people.

You should write an article on it and I’ll help promote it around the community.

That sounds very interesting jaccow. I would really like to try your software if its possible. I will check out the two other policies you mentioned above.


Yes I made a program that takes arguments and sets the CPU affinity.

I set AutoCAD to core #1 and CTXGFX to #234. In my case (2,2Ghz cores) it does really help because AutoCAD has 1 clean core to work with and Citrix is not n the way and has enough juice to keep the session smooth.

Anyone interested pm me your email I’ll send you the program I made. use at own risk and would not recommend this in a production eviorment. it’s just something I made for my testbed.

SetProcAffinity.exe usage:

SetProcAffinity [processname] [affinity value]

  • processname is case sensitive! i.e. notepad, SearchIndexer
  • affinity value is the bitwise representation of the processors
    i.e. 1, 2, 4, 8…
    or a combination of values like 7, 13

SetProcAffinity notepad 73
This will set the affinity of process notepad to processors 0, 3 and 6.

If you can appreciate this tool, consider a bitcoin donation: