| ... | Table of Content |
| ... | Preface |
| ... | About This Tutorial |
| 1 | Overview and History |
| 2 | Installation |
| 3 | Licensing |
| 4 | Configuration |
| 5 | Client Software |
| 6 | Application Installation |
| 7 | System Administration |
| 8 | Network Planning |
| 9 | Printing |
| 10 | User Environment |
| 11 | Virtualization |
| 12 | RDS Internals |
| 13 | Remoting Protocol Details |
| 14 | Security |
| 15 | Registry Settings |
| 16 | Server Sizing |
| 17 | Resource Management |
| 18 | Testing and Quality Assurance |
| 19 | RDS Scripting |
| 20 | RDS for Developers |
| ... | About |
| ... | Benny's Biography |
| ... | Presentations 2010, 2009, 2008, 2007, 2006, 2005, 2004 and earlier |
Posted by Benny Tritsch on January 17, 2010
![]()
What is harder than building and operating a new Remote Desktop Session Host environment? It’s planning and sizing a new Remote Desktop Session Host environment. If you are an IT architect and you want to establish a new environment hosting remote desktops and applications, you may want to know what hardware you need to purchase. Questions like “What server hardware do I need if I want to give 100 users access to our corporate applications?” or “How many users can I expect to host on a single Remote Desktop server?” are not unusual. Unfortunately, there are no simple answers to such questions. Adequate Remote Desktop server sizing and capacity planning is a challenge.
There is a good reason for this; Remote Desktop server sizing is dependent on factors such as available server hardware, application requirements, type of users, network configuration, system availability, and risk tolerance. This implies that there are many unknown factors to start with, which makes it almost impossible to exactly predict the final result. On the other side, it is obvious that decision makers, business managers and controllers are not willing to be walking in the dark when estimating the necessary investment into IT infrastructure.
In the past, many industry experts referred to a commonly accepted rule of thumb that suggested 15 or 20 concurrent users per CPU. Today, due to modern hardware architectures, changing user demands and unpredictable application requirements, this rule of thumb does not apply anymore. You cannot expect to find a simple solution by estimating user and resource requirements, or by performing some simple calculations and extrapolations leading you to proper results. But there are some simple strategies helping you to estimate hardware and infrastructure requirements within certain limits.
But no strategy will ever be successful without gathering some important background information first. To properly size a Remote Desktop server environment, you need to analyze requirements and expectations of users, business managers and system administrators. The result of such an analysis will give you an initial idea about performance and resource requirements. Adapting a Remote Desktop server environment in such a way that it meets the required performance level can be done by two different basic strategies: Scaling up or scaling out. Scaling up refers to using increasingly larger hardware while scaling out is based on using multiple smaller systems that share the workload.
Before you are able to properly size a Remote Desktop server environment, you first need to define the requirements in terms of user capacity, applications, and system availability. These requirements are your starting point when calculating your server hardware resources. Adequately adjusting the hardware capacity relies heavily on the number and type of applications on each individual Remote Desktop server. The users, who can be grouped into different categories, are important as well. A user's working profile may range from simple data input using just one application to simultaneous use of several, resource-intensive applications. Even if all users only use one application, resource consumption may be significantly different. Internet Explorer is a good example for this; while it only consumes a couple of megabytes in one user session it may require several hundred megabytes in another, depending on the loaded components.
When analyzing requirements, the following questions need to be answered: What is the maximum number of users a server can handle? How many applications can be installed per server? How to distribute applications and users across multiple servers? To find the answers requires an in-depth investigation into the available server resources, user categories, and preferred applications. Ideally, we would have a table with the number of potential users in one column and the matching server configuration right next to it. However, individual user requirements and application characteristics are so different that it is impossible to create such a table without reducing the complexity of the underlying calculation model significantly. It’s like you were asking what size of shoe is optimal for people in general, ignoring the fact that there is quite some variance when looking at the different sizes of people’s feet.
That all being said, what could be a working model to find out about server requirements without making it a science? Here’s a simple and down-to-earth step-by-step guide.
Now you may say that in reality this is impossible to do, and I tend to agree. It is interesting to note that in most cases the challenge is not on the technical side, it’s rather on the organizational and social side of things. Think about it…
![]()