As many corporations are still considering Citrix XenApp 6.5, quick tour of the best practices and recommendations about the sizing and configuration of the infrastructure.
Hardware
Architecture
x64 (XenApp 6.5 is x64 only)
VM/Physical
Virtualization is always my first choice as it is easy to manage and delegate. However, using XenApp 6.5 directly on the hardware often offers the same and even better results. Sometimes, you don’t even have the choice as some companies don’t even want to hear about getting new physical workloads in their datacenters and want everything to be virtualized. If you are going for the VM solution, make sure that all your hosts have the same configuration, especially with PVS.
Pros
- Easy to manage
- Flexibility
- vMotion across hosts
- Crash of one XA server is impacting less users
Cons
- User density is inferior with virtualization
- Cost (Virtualization is more expensive)
- more management activities
Hypervisor
VMware ESX 5.1
VMware is the leader in the Tier-1 hypervisors and my favorite to deploy XenApp 6.5. However there is nothing blocking you to use Microsoft Hyper-V or Citrix XenServer.
VMware is the leader in the Tier-1 hypervisors and my favorite to deploy XenApp 6.5. However there is nothing blocking you to use Microsoft Hyper-V or Citrix XenServer.
Host
Each group of virtualization hosts should include at least one additional host (N+1) so that a single server failure does not cause resource contention. T
Hyperthreading Activated.
CPU pinning disabled.
Memory Allocation: Fixed (No dynamically allocation of memory).
Host Swapping disabled.
ASLR enabled
Ensure that all critical components are not located on the same host.
Hyperthreading Activated.
CPU pinning disabled.
Memory Allocation: Fixed (No dynamically allocation of memory).
Host Swapping disabled.
ASLR enabled
Ensure that all critical components are not located on the same host.
Sockets
2 processors sockets.
No performance improvement with Quad processors.
No performance improvement with Quad processors.
Cores
8 Cores
Ratio
1.5:1
Do not Overcommit your CPUs.
Size your infrastructure to use 24 vCPU (1.5 x ESX nb CPU).
Do not Overcommit your CPUs.
Size your infrastructure to use 24 vCPU (1.5 x ESX nb CPU).
Memory
At least 128GB / host including 2GB for VMware ESX.
Virtual Machine
vCPU
4vCPU/VM is the standard configuration.
Note: Do not deploy XenApp 6.5 VM with 2vCPU.
Note: Do not deploy XenApp 6.5 VM with 2vCPU.
Memory
At least 20GB / VM including 2GB for Windows.
Note: Use all the memory available on your host
Note: Use all the memory available on your host
HDD
2 disks
System – 40 GB and Data – 40GB
System – 40 GB and Data – 40GB
Network Adapter
VMware VMxnet 3.
Always make sure to install the latest version of the VMware Tools for optimal performances.
Always make sure to install the latest version of the VMware Tools for optimal performances.
Software
Windows OS
Windows 2008 R2 SP1 STD Edition
Architecture
x64 (XenApp 6.5 is x64 only)
XenApp version
Rollup Pack
Users
Usage
- Light: One or two applications no browser-based activity.
- Normal: Multiple applications with browser-based activity.
- Heavy: Published Desktops, few applications but heavy system resource requirements. Data processing, compiling, or graphics manipulation are common applications.
Density
Dual Socket Host
- Light users: 36 users per XA VM
- Normal Users: 24 per XA VM
- Heavy users: 12 users per XA VM
Quad Socket Host
- Light users: 30 users per XA VM
- Normal Users: 20 users per XA VM
- Heavy users: 10 users per XA VM
Storage
IOPS
Dual Socket Host
- Light users: 36 users x 2 IOPS = 72 steady state IOPS per XA VM
- Normal Users: 24 users x 4 IOPS = 96 steady state IOPS per XA VM
- Heavy users: 12 users x 8 IOPS = 96 steady state IOPS per XA VM
Quad Socket Host
- Light users: 30 users x 2 IOPS = 60 steady state IOPS per XA VM
- Normal Users: 20 users x 4 IOPS = 80 steady state IOPS per XA VM
- Heavy users: 10 users x 8 IOPS = 80 steady state IOPS per XA VM
Make sure to select a storage solution delivering the IOPS required for your project.
Components
XML Broker - Secure Ticket Authority (STA) & Data Collector (ZDC)
At least 2 servers for redundancy. One Primary and Most preferred and the other as a backup. It makes sense to have the primary ZDC and the XML Broker on the same server as much of the dynamic data needed to perform application enumeration is only held on the ZDC, so splitting these roles will only cause a network request between XML and ZDC, and a very small amount of added latency in the login process.Whether you dedicate these is very much down to how heavily your environments are used. I would split only out the XML Brokers in an extremely large farm.
They should not run published applications.
Dedicate a Most Preferred Zone Data Collector in each zone.
Change the default XML port (ex: 8080).
Load balance XML brokers with Netscaler add the VIP in the WI/StoreFront configuration.
CPU and Memory usage are not significant.
They should not run published applications.
Dedicate a Most Preferred Zone Data Collector in each zone.
Change the default XML port (ex: 8080).
Load balance XML brokers with Netscaler add the VIP in the WI/StoreFront configuration.
CPU and Memory usage are not significant.
Web Interface / StoreFront
Usually, I recommend to have at least 2 Web Interface servers for redundancy. In some scenario, our friends in the Security team could request to isolate the servers for remote access. In that case put 2 more Web Interface servers (4 in total) in the DMZ proxified by the Netscaler Gateway.
Load balance the web interface servers by means of an intelligent load balancing appliance (i.e. Citrix NetScaler).
Encrypt HTTP traffic and enable Socket Pooling.
A dual 2.2 GHz CPU server running Web Interface 5.4 can handle more than ~30,000 sessions per hour.
To prevent failed logons and to optimize logon times, ensure that the STAs specified within Access Gateway match the STAs specified within Web Interface, including the order specified
Load balance the web interface servers by means of an intelligent load balancing appliance (i.e. Citrix NetScaler).
Encrypt HTTP traffic and enable Socket Pooling.
A dual 2.2 GHz CPU server running Web Interface 5.4 can handle more than ~30,000 sessions per hour.
To prevent failed logons and to optimize logon times, ensure that the STAs specified within Access Gateway match the STAs specified within Web Interface, including the order specified
Datastore
XenApp 6.5 farm must have an associated datastore to query for the farm and applications configuration. My recommendation is to use a shared Microsoft SQL or Oracle server which are suitable for any size environment and are recommended for all large and enterprise environments. SQL Server Express is OK for small deployments. During normal farm operation, the data store is accessed every 30 minutes by each server to ensure their local host cache is current. The data store is also accessed if the farm configuration is modified or static information is requested by tools such as the Citrix AppCenter Console or other Citrix query-based utilities. The data store is not accessed when a user logs in, disconnects, or reconnects to the farm. All the information needed for a client to establish a connection to a XenApp server is stored in the Local Host Cache (LHC).
Supported Databases: http://support.citrix.com/article/CTX114501.
Configure a specific DNS alias for your database server would help during SQL migrations.
Supported Databases: http://support.citrix.com/article/CTX114501.
Configure a specific DNS alias for your database server would help during SQL migrations.
License Server
1 server is required.
There is no need for a second server because of the 30 days grace period if the license server is down. Just backup this server in a way to make sure that you are able to restore it quickly.
There is no need for a second server because of the 30 days grace period if the license server is down. Just backup this server in a way to make sure that you are able to restore it quickly.
Desktop Director / Edgesight
1 dedicated server is required.
Note: Always put non-critical services on non-critical servers.
Note: Always put non-critical services on non-critical servers.
Microsoft RDS License server
2 servers are required with 50% of the licenses on each server.
Farm
Single farm/Multiple farms
1 farm is the best practice. However, you may need to have more than 1 farm depending of the following criteria:
- Location and needs of the users or your organization – If your organization is a service provider, you might want to dedicate a farm to each organization for which you provide service. Multiple farms might make it easier to demonstrate compliance with specific service level agreements.
- Geographic layout of your organization – If your IT infrastructure is organized by region and managed in a decentralized manner, multiple farms could improve farm performance. Multiple farms could also save time when coordinating farm administration and simplify troubleshooting farm-wide issues.
- Network infrastructure limitations – In WANs with high latency or error rates, multiple farms may perform better than a single farm with multiple zones.
- Organizational security policies concerning server communications – Consider multiple farms if your organization needs to segregate data based on security level. Likewise, you might need multiple farms for regulatory compliance.
- Application deployment methods – If you plan to use Microsoft System Center Configuration Manager 2007 R2 to deploy applications, XenApp Connector for System Center Configuration Manager 2007 R2 components must be installed on servers within the same farm.
Keep in mind that you need as many datastore databases as farms.
Zone
Try to have only 1 zone or the fewest number possible if all your servers are in the same location or close.However, in large networks, such as organizations with data centers on different continents, grouping geographically-related servers in zones can improve farm performance.
Logging
This setting should be enabled in order to track administrative changes made to the XenApp environment.
Session Reliability
This setting should be enabled.
Miscellaneous
Applications Delivery
Virtualize your applications with Microsoft App-V as much as possible to avoid installing applications locally.
Printing
Auto-create only the user’s default printer.
Disable automatic installation of print drivers.
Use Citrix Universal Printer drivers as much as possible.
Disable automatic installation of print drivers.
Use Citrix Universal Printer drivers as much as possible.
Profiles
Configure Mandatory profiles or Citrix UPM instead of Microsoft roaming profiles.
Logon scripts
Try to avoid as much as possible the use of logon scripts.
Provisioning
Consider using Citrix Provisioning Services if you have more than 20 servers with the same purpose.
Reboot
Weeky or at least by-weekly reboot of all XenApp servers is highly recommended.
Hi,
Could you provide me with rollup hotfix pack 5, it’s nolonger available on the Citrix site yet I need it for our environment?
Many Thanks in advance.
Hey Sat,
Below is the link for the Hotfix Rollup Pack 5
https://www.citrixguru.com/Downloads/HRP/XA65/XA650W2K8R2X64R05.msp
Also in case here are links for the previous hotfixes released by Citrix:
Hotfix Rollup Pack 3
https://www.citrixguru.com/Downloads/HRP/XA65/XA650W2K8R2X64R03.msp
Hotfix Rollup Pack 4
https://www.citrixguru.com/Downloads/HRP/XA65/XA650W2K8R2X64R04.msp
Hotfix Rollup Pack 5
https://www.citrixguru.com/Downloads/HRP/XA65/XA650W2K8R2X64R05.msp
Hotfix Rollup Pack 6
https://www.citrixguru.com/Downloads/HRP/XA65/XA650W2K8R2X64R06.msp
Hi,
I have a question for you.
If I nedd to publish notepad and calc, for 5 users, really I need to have a a VM with 20 GB of RAM?
Thank
G.
Hi,
No, the best practices described here are to make the most of your Citrix servers. In your case, you are not looking to have multiple servers or load balancing.
Hello, thanks for your article. What’s the “source” about it ? Your own experience ?
For a serveur with 4VCPUs and 20 Go RAM… How many user can connect to your Xenapp Server ?