Home
News/Updates
Reviews
Articles
indent1Articles
Glance at Free
White Papers
Preview
Real Life Experiences
Blog
Ask your Question
Links
Archive
Contact
Advanced Search
About VanBragt.net
Disclaimer
Polls
The most interesting software release of 1th half of 2010 is:
  
Home arrow Articles arrow Articles arrow Articles arrow Rebooting your Terminal Servers
Banner
Rebooting your Terminal Servers
Written by Wilco   

One of most heard jokes of Microsoft Windows is rebooting is the solution for setting configuration changes or solving errors/issues. Linux/Unix and Novell followers still use this story to explain why they don't like Windows. Comparing with those operating systems they are right that Windows needs more reboots, however Microsoft is working hard on this and within every new release less reboots are needed. However it is a best practice to reboot your Terminal Server on a periodical. Almost every time I propose to schedule periodical reboots at my customers even from the Windows engineers I the question why I would like to this. In this article I will explain why it is a good thing to regularly reboot your Terminal Servers.

Introduction

As just mentioned when I ask the question if the Terminal Servers are rebooted regularly or propose the create a reboot schedule I see big question marks in the eyes of the system administrator(s), followed by the sentence why reboot the server regularly , we don't boot any server periodical. I totally agree that it is not "normal" that servers are rebooted periodical, but a Terminal Server is also not a Terminal Server.  Why reboot a Terminal server regularly? The reasons are:

A Terminal Server is not a "normal" server

First of all a Terminal Server is a very special server. On a normal server a kind of client communicates with the server, but on a Terminal Server users are working directly with client applications. In other words instead of back-end applications front applications are running on a Terminal Server. Of course the behavior of such kind of applications is completely different to a Terminal Server cannot be compared with a normal server and so default rules for servers are not applying to Terminal Servers.

Memory usage is increasing constantly

Of course the above reason is not a reason why you should reboot a server, but to understand this perspective is important for the real reasons.

One of the most important reasons to reboot the Terminal Server regularly is the amount of available memory is decreasing constantly. By default almost every applications does not free up his used memory fully, but there are several applications that are (so called) leaking memory. Dependent of your applications running on your Terminal Server there will be a moment that both the usage of internal memory and page file is so high that a Terminal Server will respond slower or does not response in total. By rebooting the Terminal Server frees up his memory and page file.

(Temporary) Files are increasing

Also applications are using temporary files to function. Those files are hopefully stored in a temporary location, but I have also seen applications that store such files in his installation directory. Unfortunate such files are not always removed when they are not needed anymore. Such files can cause that all the available space on the hard disk of the Terminal Server is used, causing an unresponsive server. Think of none removed User Profiles, Temporary application files and non removed print jobs. By rebooting the server such files can be removed during the reboot or can be removed using a script during start-up.

Summarized:  Cleaning up the system and getting your system in good condition again.

Summarized you want to reboot to clean up the system with used disk space or memory. Cleaning up the system arranges that the system is in good shape again, because memory and disk space is again available. Normally such behavior is also available on default workstations, where the same actions are performed by shutting down the machine (normally a workstation is not running constantly for days/weeks). Only on a Terminal Server instead of one server many more users are working so the behavior can extrapolate by the amount of users.

Conclusion

Rebooting the Terminal Server environment on a regularly basis is done to get your machine in good condition because resources are getting exhausted. Mainly this is caused by the (client) applications that are running on those machines, which are started by a amount of users. The need for rebooting Terminal Services is definitely there, the schedule depends on the facts how much memory your applications are consuming (and not freeing up after closing) and how many (temporary) files are created (and not deleted). In an upcoming article I will describe how to reboot your terminal servers, which actions should be taken during/after the reboot and how to create/determine an reboot schedule.

Comments

You must javascript enabled to use this form

In theory the story of Anon is fully correct. But in practise I have seen many servers consuming more and more memory even when no users are connected anymore. In some way memory is not given back when a user logs off. So that's why in my opinion that Reboots for Terminals Servers are needed.

Posted by Wilco, whose homepage is here on 09/05/2008 at 10:09

I have had this debate many times in the past and I have heard many of these arguments before. The two points I would make are that firstly memory allocated to user sessions is cleared when the user session ends so provided you put in a policy which clears disconnected or idle sessions after a reasonable period of time then you cannot possibly be affected in the long term by this. Memory leaks which would be an issue would be those in Windows, Citrix, anti virus, etc. I have certainly not come across anything very serious in mainstream products for quite some time and if I did, I would look into getting patches not doing nightly reboots. The file deletion is largely irrelevant too. Unless the files are locked open you should be able to delete them anyway. If they are locked open, this must mean they are still open which is again best resolved by a disconnection / idle policy . You may have profiles which have locked files in them but this would indicate a problem with some software which has locked a file or area of the user registry. This would need fixing, not masking with a reboot. Overall I would say that you are far more likely to experience problems from unattended reboots in the evening, in terms of both hardware and software, than from leaving a well managed system to run. I think that the pagefile fragmentation issue is a genuine one although I have yet to see a measurable performance impact (you are going to be rebooting once in a while to add patches anyway).

Posted by Anon, on 09/04/2008 at 19:21

Memory in Windows tends to become fragmented and even if all memory is released properly, windows will end up with less 'available' memory after many allocations and deallocations. Windows 2000 & Exchange 2000 where notorious, but the problem still exists even in Exchange 2003 (e.g. see kb325044). IMHO this is the main reason why Terminal Servers need to be rebooted frequently.

Posted by Bart, on 08/26/2008 at 19:31

 1 
Page 1 of 1 ( 3 Comments )
©2007 MosCom


(C) Wilco van Bragt - VanBragt.Net SBC & Virtualization Centre