Citrix Netscaler – Load balancing options with XML brokers

Citrix Netscaler – Load balancing options with XML brokers

/ /
in Blog

We were encountering ‘slowness’ with our Citrix Web Interface that logging into it and displaying the applications would take a significant amount of time ( > 10 seconds).  I have spent considerable amount of time investigating what our performance should be in our environment.  With this information we were still seeing these long logins.  It was consistently at 200 or greater concurrent connections on our web interface servers that we saw our login times spike.  I know at ~200 or so connections our response time is around 5,000ms for our XML brokers.  I then used my PowerShell script to measure the response times of our XML broker’s we are using in load balancing.  We had two servers WI01 and WI02 that I monitored and as our web interface servers were becoming loaded I noticed something odd.

Only one of our XML brokers was being hit, the other was sitting idle.  Since we use a VIP that is supposed to have load balancing I brought our network team who support the Netscalers to help me take a look.
I configured two loads:
1) Direct connections to the XML broker/VIP. This request simulates what the web interface sends to the XML broker on behalf of the user. The traffic POST’ed is an XML request for a list of all applications available to the user. This is the hardest request the web interface can send an XML broker because the XML broker needs to filter out applications the user does not have access to before it can send a response.
2) Through the web interface. This request simulates going through the HTML pages to get your list of applications available on the web AND a PNA query for all applications available to the user.

To establish a baseline I ‘loaded’ a XML server directly (WSCTXAPP301T)


The burgundy line is 200 connections to the server posting a XML request for the list of all applications. When loading a single server the response time goes up to 5000ms.

I then loaded the VIP with 200 connections with the XML request.


From this we can see the ‘load’ switch servers between the WSCTXZDC301T and WSCTXAPP301T. This is NOT load balancing, but the Netscaler failing over when *it* does not receive a reply from the XML monitor within 5000ms. The performance with PERSISTENCE set to SOURCEIP is no better than a single server for servicing requests.

Loading the Webinterface with requests:


We see the exact same situation when going through the web interface.


After setting the PERSISTENCE to NONE I directed traffic directly to the VIP:


What we are seeing is for the exact same load (200 connections) our response time is 50% better with PERSISTENCE set to NONE. We are getting responses back in ~2300-3000ms.

Load testing the Web Interface with PERSISTENCE set to NONE sees the same results:


What’s the impact on the end user by setting PERSISTENCE to NONE? There is no impact. During load testing I made several ‘real’ connections using Citrix Receiver via PNA and through the Web Interface and both continued to operate without issue enumerating applications. With this testing and information we need to change our PERSISTENCE value to NONE.


Post a Comment

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.