I’m getting some very slow performance from an Umbraco site hosted on my Azure account. The account runs two sites, both set to an extrasmall size and running with two instances for failover.
Edited for clarity —
There are two sites available in each instance. Of those two sites, one works fine, the other is very slow (despite being served from the same instance, the same IIS etc.).
—
I started by checking the Azure instances, they seem ok and aren’t struggling particularly (usual tools: task manager, resource monitor, perfmon etc). Both sites run from SQL Azure and there seems to be little to no lag there.
Next I ran my sluggish site with the ?umbdebugshowtrace=true querystring, and most of the delay is happening at this point in the page lifecycle:
Category Message FromFirst(ms) FromLast(ms)
umbracoMacro Before performing transformation 0.858817787142857 0.000024
Resolve Urls 0 11.9020404352381 11.043223
umbracoMacro After performing transformation 11.9022704233333 0.000230
Running the XSLT transformation is taking about 11 seconds.
So I’ve done some investigative hacking and basically stripped out every XSLT control on the page, one at a time, none of them (individually) seem to be causing the hang.
Does anyone have any recommendations for how I can dig further into this and perhaps get a little more information on exactly where the delay is?
It’s great that I have enough data to narrow it down to an XSLT transformation issue, but more information would be awesome 🙂
Many thanks in advance for any advice!
Karl.
I believe that disabling a subset of controls (not one by one) is a practical method.
In fact, one could do this similarly to a binary search procedure:
Base: If you have just one control, this is the faulty control
Disable half of the controls and try. If the inefficiency disappears, then the culprit is in the disabled half — if not, then it is in the remaining half.
Continue recursively, applying 2. above to the set of controls that contains the faulty one.