Any ways to speed-up Umbraco 7.0.0's 3-4 seconds start-/warm-up delay on a shared hosting server ?

849 views
Skip to first unread message

Shamil Salakhetdinov

unread,
Nov 25, 2013, 8:48:15 AM11/25/13
to umbra...@googlegroups.com
Hi All --

As far as I have noticed Umbraco 7.0's "Starter kit" web site has 3-4 second start-/warm-up delay when running on a shared ASP.NET hosting sever. When passed that initial delay it works speedily enough on my taste, actually it's responsive and "fast as lightning" - thank you, Umbraco 7.0.0 devs!

But is there any way to improve Umbraco 7.0.0 start-/warm-up time without using "cheating" keep-alive approach usually proposed for ASP.NET systems?

I do realize that ASP.NET apps' start-/warm-up delay is inevitable (wrong?) but do you plan for the future version of the "Starter kit" to implement any "tricks" (as e.g. gmail does by displaying "...loading..."  message on top of browser window) to not make users annoyed/distracted because of start-up delay?

Thank you.

-- Shamil

Shannon Deminick

unread,
Nov 26, 2013, 5:15:53 AM11/26/13
to umbra...@googlegroups.com
There's already keep alive built in - so that scheduled publishing and scheduled tasks work.

You can check in your log what might be taking the longest time during that startup phase and report back. There's plugin scanning that takes place which is very optimized, but there's a few of them. Most are lazily scanned when needed but perhaps there's some that aren't lazily scanned that could be. Otherwise let us know what else you find in the log, most things are wrapped in timers to show how long things have taken.

sniffdk

unread,
Nov 26, 2013, 5:20:12 AM11/26/13
to umbra...@googlegroups.com
You might want to keep a lookout for hosting servers adopting the new .net 4.5.1 update as it hugely reduces the time needed to wake up an inactive site.

Cheers
- Mads

Shamil Salakhetdinov

unread,
Nov 27, 2013, 3:08:18 AM11/27/13
to umbra...@googlegroups.com
Shannon --

Thank you for your reply.

Attached is the log for the Umbraco 7.0 start-up when accessing it via a smartphone. Actually according to the log it takes about 2 seconds to start-/warm-up but the web page on smartphone browser is fully loaded in about 4 seconds so I guess there exists initial delay, which is not logged, as well as a delay after the last record written to the log (I can be wrong). I haven't yet checked Umbraco 7.0 code - is there any Umbraco settings to activate logging global.asax's Application_Start, Application_StartRequest and Application_EndRequest events?

Thank you.

-- Shamil

вторник, 26 ноября 2013 г., 14:15:53 UTC+4 пользователь Shannon Deminick написал:
UmbracoTraceLog.txt

Shamil Salakhetdinov

unread,
Nov 27, 2013, 3:27:46 AM11/27/13
to umbra...@googlegroups.com
Hi Mads --

Thank you, I didn't know about App Suspend feature. Yes, usage of this feature provides impressive speed-up of ASP.NET applications wake-ups. I will check if that feature is available on my ASP.NET hosting provider site - they could be using .NET version lower than 4.5.1.

Still warm-/start-up issue exists. Yes, it would be less noticeable by most of the users of ASP.NET sites with App Suspend feature enabled but I'd still try to find an effective solution of this start-/warm-up issue - as I have noted by using some (AJAX) "tricks" (as e.g. gmail does), which capture end-user attention for a few seconds while the target ASP.NET web site starts-/warms-up...

Thank you.

-- Shamil

вторник, 26 ноября 2013 г., 14:20:12 UTC+4 пользователь sniffdk написал:

sniffdk

unread,
Nov 27, 2013, 3:37:03 AM11/27/13
to umbra...@googlegroups.com
Hi Shamil

I think you might be confusing server warmup with page load time. 
Even though you respond with a minimal amount of html/css/js to show a loading screen on a page request, you still have to pay the warmup price if a site on the IIS has gone inactive, there is no way around that AFAIK.
Now, I don't see it as cheating to use a keep-alive mechanism of any sort, why do you think that?

Cheers
- Mads

Shannon Deminick

unread,
Nov 27, 2013, 3:40:34 AM11/27/13
to umbra...@googlegroups.com

If you change your log level to debug instead of info in the log4net config you'll get more info.

Sent from my phone

Shamil Salakhetdinov

unread,
Nov 27, 2013, 4:16:14 AM11/27/13
to umbra...@googlegroups.com
Hi Mads --

I do realize ASP.NET run-time instance have to be activated to host an ASP.NET app, then ASP.NET app's JIT compiling have do be done etc. till Application_Start global.asx event fires, correct?

> there is no way around that AFAIK
Yes, there seems to be no "direct way around" - I'm thinking about something like "background lift-up" of an ASP.NET application by using pure .html start-up page + JavaScript "tricks": I mean using index.html instead of default.aspx (or other start-up .aspx page), which will capture end-user attention for a few seconds and in the same time will "kick/lift-up" a terminated (because of inactivity) ASP.NET application and then will redirect to the default.aspx/start-up aspx web page, which will be instantly loaded (from cached web page formed in background by "kick-/lift-up" Web API calls). Am I missing some technical details?

> Now, I don't see it as cheating to use a keep-alive mechanism of any sort, why do you think that?
Well, it takes web server resources when nobody accesses an ASP.NET app, for large ASP.NET apps that could a significant waste of resources/energy, I can be wrong. App Suspend feature of ASP.NET 4.5.1 seems to be a good "work around" solution for me - I have already queried my ASP.NET web site hosting company if they can activate this feature (it's currently not available via my asp.net hosting admin web interface).

Still, if a pure .html/javascript start-/warm-up "trick" is possible to implement - it would be great to have it implemented in Umbraco starter-kit.

Thank you.

-- Shamil

среда, 27 ноября 2013 г., 12:37:03 UTC+4 пользователь sniffdk написал:

Shamil Salakhetdinov

unread,
Nov 27, 2013, 4:48:41 AM11/27/13
to umbra...@googlegroups.com
Thank you, Shannon --

I have made log4net config changes - here is the log except:

2013-11-27 13:19:16,580 [6] INFO  umbraco.BusinessLogic.Log - [Thread 18] Log scrubbed.  Removed all items older than 2013-09-28 13:19:16
2013-11-27 13:19:16,595 [6] INFO  Umbraco.Core.UmbracoApplicationBase - [Thread 18] Application shutdown. Reason: ConfigurationChange
2013-11-27 13:19:58,247 [78] DEBUG Umbraco.Core.CoreBootManager - [Thread 77] Umbraco application starting
...
2013-11-27 13:20:00,747 [78] DEBUG Umbraco.Web.UmbracoModule - [Thread 23] Begin request: .../favicon.ico.

It takes 2.5 seconds (13:19:58,247 - 13:20:00,747) till favicon.ico begin request is issued but that is the last start-up log record. I will "play" more with my Umbraco site log in the coming days.

Thank you.

-- Shamil

среда, 27 ноября 2013 г., 12:40:34 UTC+4 пользователь Shannon Deminick написал:

Shamil Salakhetdinov

unread,
Nov 27, 2013, 5:02:14 AM11/27/13
to umbra...@googlegroups.com
FYI: attached are log records written while accessing Umbraco starter kit About page from smartphone for a terminated ASP.NET application. 
It took ~2.7 seconds to start-up server side. For client side it was about 5 seconds till web page was loaded...

2013-11-27 13:51:30,492 [15] INFO  Umbraco.Core.UmbracoApplicationBase - [Thread 12] Application shutdown. Reason: ConfigurationChange
2013-11-27 13:51:59,723 [23] DEBUG Umbraco.Core.CoreBootManager - [Thread 17] Umbraco application starting
...
2013-11-27 13:52:02,441 [23] DEBUG Umbraco.Web.UmbracoModule - [Thread 12] Begin request: .../css/images/mobileUI-site-nav-opener-bg.svg.

Thank you.

-- Shamil

среда, 27 ноября 2013 г., 13:48:41 UTC+4 пользователь Shamil Salakhetdinov написал:
UmbracoTraceLog (5).txt

Damiaan Peeters

unread,
Nov 27, 2013, 5:24:33 AM11/27/13
to umbra...@googlegroups.com
I think 2,7 seconds for a cold boot of a website is not bad at all.
Even IISEXPRESS on my local machine it is not that fast.

Shamil Salakhetdinov

unread,
Nov 27, 2013, 6:23:02 AM11/27/13
to umbra...@googlegroups.com
Damiaan --

I'm not saying it's bad - I just wanted to get it (much) better if possible.
And it's not 2.7 seconds - it's 4-5 seconds for client side.
Even MS Win8 cold boot takes less than 8 seconds when I'm getting it booted from SSD. And MS Win8 "wake-up" is almost instant.

Yes, I do realize that Umbraco 7 developers have done excellent work to minimize speed-up time for "cold boot" procedure.
Yes, I do realize that ASP.NET apps' cold boot delay is unavoidable in principle - because of the way ASP.NET technology works.
Still, if it's possible to implement some tricks to not get end-user stared at blank browser window while cold boot tasks are getting processed on server side that would be nice to have -  nice not must.

Yes, ASP.NET 4.5.1 App Suspend feature, Mads mentioned here about, solves the issue very effectively. 

Thank you.

-- Shamil

среда, 27 ноября 2013 г., 14:24:33 UTC+4 пользователь Damiaan Peeters написал:

Shannon Deminick

unread,
Nov 27, 2013, 6:06:50 PM11/27/13
to umbra...@googlegroups.com
Just FYI you'll notice some log entries when loading plugins that mention: "Loaded plugin types Umbraco.Web.Mvc.SurfaceController from persisted cache"
That is an Umbraco feature to speed the startup time. Unfortunately this feature was accidentally disabled in the late versions of 4.11.x (around there) so I'm pretty sure it doesn't exist in any 6.x version (of course we'll put it back in 6.2). If you want to see how much the time changes without this feature you can delete all of the files in App_Data/TEMP/PluginCache and restart your app pool.

It would also be interesting to see what the cold boot time is for the standard MVC site compared to Umbraco.

Reply all
Reply to author
Forward
0 new messages