Windows Server 2012 / 2012 R2 - RDS - Improve RDS server performance by optimally managing sessions and its resources

Page 1 / 1

Even if you try to create a highly available RDS infrastructure, there will always be a time when your server will slow down (because of a user or a greedy process, for example) or simply because there are still many inactive sessions on your host session server.
In these sessions, there may be programs that run for nothing for several hours and that could have been automatically closed by your server if you had specified inactivity timeouts for your users' sessions.

  1. Management of sessions and resources of the RDS infrastructure
  2. Performance alerts
  3. Limit simultaneous connections number to the RDS gateway

1. Management of sessions and resources of the RDS infrastructure

In the properties of each RDS collection, you will find a "Session" tab that will allow you to :

  • end a disconnected session : a session can have a "Disconnected" status when a user for example closes the remote desktop window via the cross at the top right instead of disconnecting cleanly
  • limit an active session : this option is only useful if you know that your users will only use their sessions for a specific time (if the user works 8 hours a day), you know that you can specify a limit a little higher than this duration.
  • limit inactive session : when a user for example reduces the "Remote Desktop" window and no longer works for some time, the session is considered inactive

Then, in the case of a disconnection or when one of the limits is reached, you will be able to choose to :

  • disconnect the session : the remote user will lose the display, but the programs will remain open on the server to avoid losing their unsaved work
  • end the session : the user's session will be closed and all programs and documents opened by this user will be closed. This will free up resources on the server, but if the user has forgotten to save his work, it will usually be lost.
    With the exception of Microsoft Word, for example, which automatically performs a default backup of what the user modifies in the document and who proposes to restore it when the program is restarted (ONLY IF the user has saved at least once his document).

If you use multiple session host servers per collection, you will be able to manage load balancing on them in the properties of the desired collection.
In the "Load balancing" tab, you will see the list of session host servers assigned to this collection and you can specify :

  • relative weight : it's a "weight" that defines how your users will be distributed (assuming they all use the same amount of memory and CPU resources)
  • session limit : which allows you to limit the number of sessions on a session host server (which allows you to not saturate a server and offer a fluidity to your users)

In summary, if the 1st RDS server has a relative weight of 1000 and the 2nd has a relative weight of 100, the 1st will support 10 times more sessions than the 2nd server. +

Source : Aide sur paramétrage RDS Equilibrage de charges - Pondération Relative & Limite de session (Technet Microsoft)

To simply limit the use of resources on your server, you can also check and limit the redirection of client resources to remove what is not needed in your case.
For example : depending on the needs of your users, redirection of audio/video playback and smart card readers may not be necessary.

By disabling these redirects, you will prevent your server from using resources unnecessarily for each connected user.
This can become very significant if you have many users.

2. Performance alerts

To find out if a server is full, you can enable performance alerts.
In the event that a program consumes a lot of resources or that almost all the resources of the server are used, you could be notified and be able to close the affected processes on the relevant user sessions before it's too late.

To do this, go to "Remote Desktop Services -> Servers" and select your RDS server.

Then, go down to the "Performance" section where you will see your RDS server appear.
Click "Tasks -> Configure Performance Alerts".

Note that the server shown here is the one selected above.

Specfify from when you want to be alerted :

  • CPU (% usage)
  • Memory (MB available)

For this to work, remember to enable performance counters by right-clicking "Start Performance Counters".

Windows Server will warn you that you will need at least 30 minutes to start seeing information here.
In addition, the meter status will be : On - Waiting for data.

3. Limit simultaneous connections number to the RDS gateway

Finally, if you have installed an RDS gateway to provide secure external access to your RDS infrastructure, be aware that it's also possible to limit the number of simultaneous connections to this gateway.
To do this, open the RD Gateway Manager and right-click "Properties" on it.

Then, in the "General" tab, you will be able to manage the maximum number of connections to allow on this RDS gateway.

Another possibility that can be complementary is to create an RDS gateway server farm to distribute the connections (via NLB) on the different servers and thus distribute the workload on these different servers.