My previous post detailed testing the limits of your Citrix Web Interface. During this testing we discovered there appeared to be a limit on the number of connections the Citrix Web Interface could accommodate. This discovery masked the true limitation: the Citrix Web Interface is limited by the number of threads its w3wp.exe process can spawn to handle ASPX pages. The w3wp.exe process spawn threads to handle the number of connections/load and once it exceeded 48 threads then further requests go into the application queue. This limitation exists when running a ASP.NET application under ASP.NET 2.0 in Classic mode. In integrated mode this limitation is determined differently and not applicable. Unfortunately, the Citrix Web Interface runs in Classic mode under ASP.NET 2.0.
This formula is determined by the number of CPU’s you have times an arbitrary number Microsoft decided would be good for dealing with ASPX pages set back in the IIS 5 or IIS 6 days. It is woefully low and sadly, Citrix does not resolve it when you install the Web Interface application.
But, we can increase the per processor thread count to prevent the queuing. To do so you must edit the “C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config” and set the processModel with a new set of thread values.
My next post will detail testing the capabilities of the XML server and seeing if we can determine the best way to optimize XML performance.