Guide: Performance optimize an ESX Virtual Machine for Citrix Presentation Server

This guide includes tips about how to performance optimize a virtual machine running in vmware ESX 3.0(x) with windows and citrix presentation server (Terminal Server).

Although a very important part of the overall performance of a citrix server in a virtual environment, this guide does not include esx infrastructure hardware planning, scaling and storage configurations but concentrates on the virtual machine settings.

Although Citrix / SBC is not the most ideal candidate for virtualization it has still advantages for a lot of businesses as easy cloning servers, hardware independent etc. and with server hardware technologies advancing (quad core cpu's etc.) virtualizing citrix solutions becomes more and more interesting.

Other components besides the Presentation Server itself like the datastore, licening server, web interface, secure gateway etc. are on the otherhand ideal for virtualization.

Performance optimization tips

Here a table of performance tips I found from different sources

Tip

Why

Source

Install VM ware Tools

Installs drivers that improve overall speed of the VM

esx2_citrix_planning.pdf

Vmware tools: Do not install balloon driver

Do not install the “Memory control driver” this creates overhead for the VM

med0115.pdf

Vmware tools: Do not install shared folders

This can give problems when using roaming profiles in citrix

VMNT KB

Disable visual effects

Fade effects take more data(=time) to send to the users screen and will make the user experience slower.

esx2_citrix_planning.pdf and med0115.pdf

Disconnect the CD-ROM

The VM is checking the CD-ROM periodically using CPU time

esx2_citrix_planning.pdf

Defragment the virtual disk

Periodically defragment the virtual disks to optimize the disk speed

esx2_citrix_planning.pdf

Use only 1 virtual CPU per VM (in most cases)

No reason given

med0115.pdf

Turn of hyper threading

Read about this tip from different sources, but have not found any reason why this improves performance for Citrix vm’s. Try it anyway..

VMNT Forums

Disable COM ports

The presence of these ports can cause random spikes in CPU utilization

esx2_citrix_planning.pdf and med0115.pdf

Make sure you have the correct OS selected for the VM

No reason given. VM Settings > Options.

esx2_citrix_planning.pdf

Set the same reservation amount as the amount of memory you have given the VM

The memory usage on a citrix server can swing very fast (depending on nr of users and how much memory per users is used) if esx needs to “free” up, swap or balloon memory somewhere else it will create overhead

VMNT Forums

Processor affinity can sometimes help

When using affinity you must carefully balance and monitor workloads in order to avoid over committing some processors while other processors remain underutilized

med0115.pdf

 

 

 

Conclusion

These tips will help improving the performance of your virtual citrix implementations in vmware ESX. I will try to add new tips when I find them and update this guide accordingly.

Stefan Schuller

me(-at-)stefanschuller.com

Last edited: 1 may, 2007