XenApp and RDS Sizing Part 1 - Methodology

This article is part of a mini-series. You can find the other articles here.

One of the first things you need to do after starting a XenApp farm upgrade project is to answer the obvious question from management: how much will it cost? In order to be able to answer, you need to have a good understanding of the resources required. In other words, you need to size the farm.

Sizing = Gut Feeling + Caution?

The process of sizing a XenApp farm in many cases is more a mixture of gut feeling and caution than solid engineering.

Gut feeling

I know my way around our current farm, so of course I am qualified to say how many of today’s 6 core CPUs we need as a replacement for yesterday’s 2 core models!

Caution

I’ll add some more servers, just to be on the safe side.

The result of such an approach to sizing very often is overcapacity in some areas and resource shortage in others. Your brand-new farm might sport 1 physical CPU core per user but lack enough RAM to host all those applications users tend to start.

Without proper sizing you are likely to spend more money than necessary, and spend part of it on things you do not need instead of investing it where it really improves performance.

In this series of articles I will explain how to investigate an existing XenApp farm, determine its load and calculate the capacity of a future farm from that data.

Methodology

We will start by dividing a farm into components that can be analyzed individually. The four system components most relevant to the performance of a XenApp farm are: CPU, memory, storage and network. For each of these components we need the total capacity as well as the load. When we have that information we can derive sensible values for the future farm easily.

As an example, let us assume we have a farm consisting of 10 servers. Each server has the following hardware configuration: 2 CPUs with 4 cores each, 4 GB RAM, 2 15K hard drives as RAID-1, 1 Gigabit network connection. The total net capacity is as follows:

  • CPU: 80 cores
  • Memory: 26 GB
  • Storage: 1,500 IOPS
  • Network: 1 GB/s

If the farm is regularly used by 100 concurrent users we get the following per-user capacity:

  • CPU: 0.8 cores / user
  • Memory: 266 MB / user
  • Storage: 15 IOPS / user
  • Network: 10 MB/s / user

After performing measurements we know that the typical maximum load is as follows:

  • CPU: 10%
  • Memory: 90%
  • Storage: 50%
  • Network: 1%

Looking at those load values it is obvious that we have overcapacities especially with network and CPU, and that memory is scarce. It seems sensible to set the following factors for the new farm:

  • CPU: 0.25
  • Memory: 2
  • Storage: 1
  • Network: 0.1

With those factors established, we can calculate the capacity of the new farm. In our example, it needs to be sized for 200 concurrent users because the company is growing. Here are all numbers in one table:

DescriptionFarm capacity old (total)Farm capacity old (per user)FactorFarm capacity new (per user)Farm capacity new (total)
CPU [cores]800.80.250.240
Memory [MB]26,6242662532106,400
Storage [IOPS]1,500151153,000
Network [MB/s]1000100.11200

Great, But Where to Get That Data?

This was just a simple example to whet your appetite. In the course of this series I will show you exactly how to get all the relevant data for sizing your next XenApp farm.

Read on!

Comments

Related Posts

How-to: XenApp/RDS Sizing and Capacity Planning with uberAgent for Splunk

How-to: XenApp/RDS Sizing and Capacity Planning with uberAgent for Splunk
Do you know the maximum number of users each of your terminal servers can host with acceptable performance? You may have found out the hard way how many are too many - but how many are just right? Farm sizing and server capacity planning are typical tasks for consultants who often have a hard time fighting the peculiarities of perfmon and logman trying to get the data they need for their calculations. It can be so much easier at no additional cost. The 60-day Enterprise Trial version of Splunk in conjunction with an evaluation license of uberAgent give all the information you need in much less time. Here is how.
Citrix/Terminal Services/Remote Desktop Services

Four Ways to Increase the Capacity of Your Citrix XenApp Farm

Even with the most meticulous design, the day will come when your farm’s capacity is not sufficient any more. User numbers increase, applications become more resource-hungry and the amount of data to be handled increases steadily. So what do you do? Simply more of the same, i.e. buy more servers and add them to the farm? That is one way of increasing capacity, but it is not the only one and therefore may not be the best.
Performance/Sizing

Latest Posts

Fast & Silent 5 Watt PC: Minimizing Idle Power Usage

Fast & Silent 5 Watt PC: Minimizing Idle Power Usage
This micro-series explains how to turn the Lenovo ThinkCentre M90t Gen 6 into a smart workstation that consumes only 5 Watts when idle but reaches top Cinebench scores while staying almost imperceptibly silent. In the first post, I showed how to silence the machine by replacing and adding to Lenovo’s CPU cooler. In this second post, I’m listing the exact configuration that achieves the lofty goal of combining minimal idle power consumption with top Cinebench scores.
Hardware

Fast & Silent 5 Watt PC: Lenovo ThinkCentre M90t Modding

Fast & Silent 5 Watt PC: Lenovo ThinkCentre M90t Modding
This micro-series explains how to turn the Lenovo ThinkCentre M90t Gen 6 into a smart workstation that consumes only 5 Watts when idle but reaches top Cinebench scores while staying almost imperceptibly silent. In this first post, I’m showing how to silence the machine by replacing and adding to Lenovo’s CPU cooler. In a second post, I’m listing the exact configuration that achieves the lofty goal of combining minimal idle power consumption with top Cinebench scores.
Hardware