XenApp does a decent job distributing users out of the box, but one of the things that can catch users off guard is receiving a server that is very busy that is still accepting new connections, or worse, not accepting connections at all, despite having plenty of free resources. Both of these situations can be addressed by setting a load management policy in Citrix Studio. The available settings are shown below.
As you can see from this image, the default “Concurrent logons tolerance” is 2 logons. This number can be quite a pain point if you have a large user base that tends to log in around the same time but a relatively small pool of servers. Additionally, CPU usage and memory usage aren’t used for calculating load by default. The settings I recommend setting are as follows:
Concurrent logons tolerance: 4
CPU Usage: 70%
Memory Usage: 70%
Maximum number of sessions: 50
By increasing the concurrent logons, we can ensure a much greater number of users can begin a logon during the “shift rush”. Logons are an intensive process in terms of CPU, IO and processes, so you don’t want to crank this too high. I do encourage you to do testing and find out what your environment can handle, or use a tool like LoginVSI to benchmark it for you.
CPU usage and memory usage should provide ample room for existing users to continue to work without packing them in too densely.
Finally, the maximum number of sessions – realistically I haven’t seen servers get this dense in years due to compute limits being a bottle neck long before session limits. With that said, I’d hate to be the guy to explain why 250 users unnecessarily lost their work all at the same time when they could have been balanced across the other servers.