
Hi folks, hoping some of you smart Lightning admins can help me with an issue! I'm currently working with a client who is rolling out a new Salesforce app that uses Lightning and is facing some challenges.
95% of this client's end users access their desktops via Citrix XenApp. For some context, they ran on MS Remote Desktop Services for years before Citrix without any problems, and had been on Citrix for a little while without any issues.
On the day they went live with their Salesforce app, their helpdesk was bombarded with calls about poor performance on the Citrix desktop. Their IT guys checked the system over and found CPU usage on the Citrix servers had gone through the roof. When they checked what processes were generating CPU, they found it was Salesforce tabs in Chrome.
Since then we have been working with the client to try to figure out why Salesforce Lighting is generating so much CPU usage on the clients. The IT guys have capped Chrome at 20% CPU usage to protect other users on the servers, but obviously this results in a poor Salesforce experience for the people using it because it's trying to chew CPU resources it isn't allowed.
Some relevant info from their IT guys:
- The 95% of users ran on 5x MS RDS servers for a long time, and the system didn't experience any performance issues.
- 6-8x Citrix servers were deployed initially and these ran fine until Salesforce Lightning was deployed
- The Citrix system has now been expanded to 20x servers to try to spread the load, but if the Chrome CPU cap is removed then Salesforce still maxes out all the servers when lots of people are using it
- The client has used a variety of desktop and web-based software for years, and has never had these kinds of issues before
- Monitoring a single user shows that during normal website use (non-Salesforce), they generate an average of <5% CPU use
- Monitoring a single user shows that when using their Salesforce app they generate an average of >40% CPU use with spikes up to 90% (these are decent spec servers, too)
- The Salesforce app has been run through Salesforce and third party optimisation guides, and all steps have been completed/optimised
- If the app is run on a standalone PC, then CPU is still high (but has less impact because there's not multiple users on the PC)
- General performance of the Citrix system is fine, YouTube videos play fine, and if the Chrome CPU cap is removed and the number of users per server brought very low, then Salesforce performance is fine too
Any suggestions on where we can go from here? I understand that Lightning is more CPU intensive than Classic, but as everyone is being forced towards Lightning with Chrome I don't see a long term option to not use it. Presumably it's not expected that Salesforce uses nearly half the resources on a large server per user?
Thanks in advance for any insight!
Chris

I suspect very uneconomical to run Lightning in a DaaS environment noting the CPU requirements. That said, individual desktops (i.e. VDI, in the tradition 1-to-1 meaning) will likely perform better than shared-server environments (i.e. RDS/Terminal Services, even if packaged up through Citrix) because you don't have multiple users battling for 100% CPU on the same desktop. The hypervisor will likely do a better job of managing that than Windows would, but even then I would hate to see what 100 VDI desktops with Salesforce users on would do to the pCPU/CPU scheduler on a single physical host.
We as a company have been doing desktop virtualisation for 15 years across a number of different platforms and sectors, and this is the first time I have seen an application perform this badly and be this hard to tame. Occasionally you see a bit of software that's just badly written and you can cap CPU at 5% with no impact in the software itself, but Salesforce seem to have shifted the server-side processing onto the client, so client CPU use goes through the roof and if you cap it then Salesforce application performance suffers to the point where it's unusable.
Expecting a 30k Octane score (some of the docs say 20k, some say 30k) in an average business environment is completely unrealistic.