I am currently having issues with the startup time of a client website after upgrading them to 7.3 beta (we are expecting 7.3 to be stable after this large unit of work is completed). Currently we are suffering from extensive startup times that take numerous minutes.
This is a site that started at 7.1.8 and was upgraded to 7.2.2 previously. There were no startup speed issues like this at these versions.
Here's a sample profiling session while waiting for the startup:
It looks like it's spending a lot of time in calls to get a IPublishedContent's URL. Although it looks like it isn't much in the screenshot above (12.5% of the overall time), this is just the time recorded from one partial ("LinkWidget.cshtml"). Most of the time is spent in these partials, which all look like the above.
I've created another trace with call counters. This is a snapshot of it (it's still running as I'm writing this, this one takes longer to run). This shows again, a lot of time and effort being spent when calling a URL.
It is spending a lot of time in the GetPropertyCollection method in VersionableRepositoryBase. You can see a lot of calls to ToArray() in there (28,915).
I did a quick look in SQL Profiler to see what was going on and what was taking a while to run. This block of code seems to be executing a query which takes a small while to run, and is calling it multiple times.
That particular highlighted query is returning 73,685 rows and takes ~1.5 seconds each call.
Once the initial page has loaded, refreshing the page is fine (<1 second).
Can anyone shine any light on what is going on here?
Should also point out, logging into Umbraco is really quick. This seems to actually be the initial page load, so the title "Really slow startup" might be misleading.
What happens: on startup, on the first page, you seem to get the url of quite a few contents. Each time you get the url of a content we need to look for domains. In 7.3 domains now have their own DomainService and DomainRepository and it looks like the way we cache domains has changed.
In the past we'd cache the whole list of domains, whereas now we cache each domain individually - but when you need the list, we fetch it again from database.
Once the url has been created, it is cached, which explains why after startup, the site behaves normally.
So... would say we have a caching issue with domains. Will look into it.
Really slow startup with v7.3-beta
Hi all,
Moving this Twitter discussion to the boards.
I am currently having issues with the startup time of a client website after upgrading them to 7.3 beta (we are expecting 7.3 to be stable after this large unit of work is completed). Currently we are suffering from extensive startup times that take numerous minutes.
This is a site that started at 7.1.8 and was upgraded to 7.2.2 previously. There were no startup speed issues like this at these versions.
Here's a sample profiling session while waiting for the startup:
It looks like it's spending a lot of time in calls to get a IPublishedContent's URL. Although it looks like it isn't much in the screenshot above (12.5% of the overall time), this is just the time recorded from one partial ("LinkWidget.cshtml"). Most of the time is spent in these partials, which all look like the above.
I've created another trace with call counters. This is a snapshot of it (it's still running as I'm writing this, this one takes longer to run). This shows again, a lot of time and effort being spent when calling a URL.
It is spending a lot of time in the GetPropertyCollection method in VersionableRepositoryBase. You can see a lot of calls to ToArray() in there (28,915).
I did a quick look in SQL Profiler to see what was going on and what was taking a while to run. This block of code seems to be executing a query which takes a small while to run, and is calling it multiple times.
That particular highlighted query is returning 73,685 rows and takes ~1.5 seconds each call.
Once the initial page has loaded, refreshing the page is fine (<1 second).
Can anyone shine any light on what is going on here?
Should also point out, logging into Umbraco is really quick. This seems to actually be the initial page load, so the title "Really slow startup" might be misleading.
What happens: on startup, on the first page, you seem to get the url of quite a few contents. Each time you get the url of a content we need to look for domains. In 7.3 domains now have their own DomainService and DomainRepository and it looks like the way we cache domains has changed.
In the past we'd cache the whole list of domains, whereas now we cache each domain individually - but when you need the list, we fetch it again from database.
Once the url has been created, it is cached, which explains why after startup, the site behaves normally.
So... would say we have a caching issue with domains. Will look into it.
http://issues.umbraco.org/issue/U4-6844
is working on a reply...