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 |
|
Vmware tools: Do not install balloon driver |
Do not install the “Memory control driver” this creates overhead for the VM |
|
Vmware tools: Do not install shared folders |
This can give problems when using roaming profiles in citrix |
|
Disable visual effects |
Fade effects take more data(=time) to send to the users screen and will make the user experience slower. |
|
Disconnect the CD-ROM |
The VM is checking the CD-ROM periodically using CPU time |
|
Defragment the virtual disk |
Periodically defragment the virtual disks to optimize the disk speed |
|
Use only 1 virtual CPU per VM (in most cases) |
No reason given |
|
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.. |
|
Disable COM ports |
The presence of these ports can cause random spikes in CPU utilization |
|
Make sure you have the correct OS selected for the VM |
No reason given. VM Settings > Options. |
|
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 |
|
|
|
|
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