Windows Server 2008R2 – How Often to Restart a Heavily-Utilized Remote Desktop Server (VM)

cpu-usagelyncmemory usageremote-desktop-serviceswindows-server-2008-r2

Note: I've read How Often Do Windows Servers Need to be Restarted? but this question pertains to our Remote Desktop server specifically.

We have a Windows Server 2008R2 server – a VMware ESX VM – licensed for Remote Desktop Services, 25 users that also does RRAS (SSTP). On an average weekday, during working hours, there are between 8 and 12 logged-in, active users with an additional 4-6 "disconnected" users. It has a 12 GHz CPU hard reservation and 16 GB RAM, also entirely reserved. The CPU reservation is expandable to 24 GHz max when needed.

Many of our users rely exclusively on the server to work. They also complain bitterly about its performance but many are unwilling to change working habits or software to improve its performance. Specifically:

  • Users refuse to log off instead of disconnect
  • Users insist on using Lync 2013 instead of Lync 2010 (Lync 2013 is a notorious resource hog)

I cannot overstate the significance of their refusal to log off. Disconencted users continue to hog RAM while disconnected, which means that at any given time, we have up to 16 instances of certain programs running.

I've also noticed through experience that leaks/zombies tend to add up the longer a Remote Desktop server has been running. After a reboot the server is fresh and much faster, even when comparing performance after many users have logged in. I've also read that regular reboots can be helpful.

So I have proposed regular reboots of the VM – I would like to do it weekly, say on Saturday evening – as I feel these reboots would solve a lot of the problem.

I would like to know, if you are a Windows admin,

  • Am I right about the fact that garbage/zombies/leaks accumulate with session time, even after a user disconnects/reconnects?

  • How often do you restart a similarly-utilized Windows Server with Remote Desktop Services?

Best Answer

Generally, I'm opposed to the idea that a Windows server should be rebooted on a regular schedule EXCEPT in relation to TS/RDS servers. We reboot ours every day. It clears up old sessions, releases in use resources (CPU, RAM, file handles, etc.), so my opinion and suggestion would be that you do configure a daily scheduled reboot of your RDS servers.

Note that this answer is only my opinion. There's no statement of fact here.