Orchard + shared hosting

Jan 18, 2011 at 12:34 PM

Hi,

Is anyone else having serious startup issues with Orchard running on a shared hosting plans like in DiscountASP.Net?

Sometimes it takes minutes to get the app started. After that site works fine for a while and then when revisiting the site again same slowdown occurs. I think they are recycling the App Pool or something that makes the whole Orchard restart which causes the slow reply. I'm currently running on SQL CE 4 instead of full SQL server as I first believed the slowdowns were caused by the SQL server.

Jan 30, 2011 at 8:22 AM

I am definitely seeing this problem, though it's on GoDaddy.  Painfully slow on every new page.  It's the precompilation step I'm guessing since hitting a given page is only slow once.  Going to the admin pages are always terrible.  Even worse, I get many database timeouts.  I think the shared hosts throttle the users a lot.  I'm using SQL Server 2008 R2 so it's disappointing that SQL CE didn't help.  I used .Text, and then Subtext before this and never had performance problems.  I know this is a more complex site, but it's really making it difficult to be happy with my site at the moment...

Coordinator
Jan 30, 2011 at 6:58 PM

I have a Godaddy account I use for "experiments". I noticed a few similar issues:

1. First access is very slow (from 30sec to 1 minute). My site is pretty much invactive, so my guess is that it's being "idle out" after a few minutes and restarted when accessing the homepage

2. Using SqlCe is actually 2x-3x slower than using SqlServer (~700msec/req instead of ~250msec/req on average). My guess (only a guess) is that since all files are hosted on a shared filesystem, accessing the SqlCe database file (in ~/App_Data) is slower than communicating with the SqlServer. I never noticed any timeout, though. 

3. Accessing pages for the first time after re-activation is also somewhat slower than the 2nd time. I'm not sure why this would be: Views need to be compiled the first time they are used (like any asp.net application), but they should be re-used one the site has been deployed and used once (stored in TEMP ASP.NET folder). Maybe Godaddy does "clean" the temp folder between activation.

Feb 8, 2011 at 5:20 PM

I've since migrated back to SQL server but still the very slow initial startup times are there. I've posted a ticket to DiscountASP.Net support hoping for a solution.

Feb 8, 2011 at 5:53 PM

On GoDaddy, for relatively inactive site initial startup time is painfully slow, minutes not seconds. And if you have low traffic site, it will be unloaded when idle and will take another 3-4 minutes to start when you accessing site again. Not an issue for high traffic site, works great, but for small personal site just makes no sense, way too slow.

Coordinator
Feb 8, 2011 at 6:31 PM

As an FYI, I looked at my godaddy account configuration, and it's a so-called "4GH" one.

Feb 9, 2011 at 1:54 PM

Okay, I got a reply back from DicountASP.Net hosting and it doesn't sound good. Basically they are recycling the App domain every 20 minutes and this is causing the slow startups as Orcard needs to start from scratch again. Only solution they are suggesting is to change a server but I've already done that once when running on Orchard 0.5 and didn't help then so why would it now.

This issue is basically making it impossible to run Orchard based sites on shared host providers.

Coordinator
Feb 9, 2011 at 4:50 PM

You’ll run into this a lot with shared hosting accounts but it really does depend on the individual hosting provider and how they’ve got things configured. Part of it might have to do with the size of the provider. I have a couple of low-traffic sites running on a low-cost GearHost account and I haven’t really had much of a problem with perf, cold startup seems bearable and I hardly hit them cold.

I know this doesn’t help anyone right now with perf on the likes of GoDaddy (where a good deal of folks will have a hosting account) but it doesn’t mean you’re out of luck with shared hosting in general.

Coordinator
Feb 9, 2011 at 6:43 PM

Just a word to say that we are taking this very seriously and exploring various options. More on this later.

Feb 9, 2011 at 7:22 PM

Does anyone know of a "best practices" white paper for hosters who want to do a good job of hosting  projects like Orchard or MVC3 applications in general?

 

Feb 10, 2011 at 11:59 AM

Some kind of list would be nice. Maybe with actual experiences on running Orchard with the provider. I'm currently looking for alternative hosting provider for my blog. Maybe I can find a affordable dedicated virtual hosting provider somewhere. Anyone has any remommendations?

Feb 10, 2011 at 8:43 PM

I had the same problem with the app pool being recycled at webhost4life with a sitefinity cms installation. I created a scheduled task to hit the site every 10 minutes and bring it back to life. It's a pretty weak solution, but it seemed to work.

Feb 10, 2011 at 10:25 PM

+1 on this issue, I've tried GoDaddy and discountasp.net and cold start times (i.e. every 20 mins!) is very poor.  Hope this can be improved in future releases.

Feb 11, 2011 at 10:07 PM

Guys, i have my own dedicated server and am seeing this too. I assume the app pool is recycling, so if nobody hits the site for 20 minutes or so, the startup time is terrible. It's not just shared hosts.

Count this my vote as "this is very important" (I see Bertrand already commented, so i know it's being looked into)

Can someone recommend a good "ping" tool in the interim to hit the site every 10 minutes or so?

 

Feb 11, 2011 at 10:11 PM

I just hit my low-traffic blog and counted to 20 before it loaded.

I did notice it downloading the font kit during this time, i wonder if it is part of the slow load?

but anyway- 20 seconds is pretty amazing, considering the massive horsepower i have on this ded server. even a full site recompile seems it wouldn't take this long.

Coordinator
Feb 11, 2011 at 10:16 PM

As an additional data point, can each of you send me (at bleroy at microsoft dot com) the list of modules and themes you have installed on the site *and* which ones are enabled?

Thanks.

Feb 12, 2011 at 7:33 PM

Orchard's performance on shared hosting as well as dedicated hosting is a complete fail. We decided against using Orchard for the web site we are about to develop because of the long loading times - which is unacceptable. Who in their right mind is going to wait 1 minute for a web site to load? The Orchard Team needs to address this issue ASAP if they want people to take this CMS seriously. They didn't keep the small guy in mind when developing this as this would've been discovered pre release.

Coordinator
Feb 12, 2011 at 7:50 PM

You should take a look at the module I have just released, which will keep the application alive and thus prevent app pool recycling.

http://www.orchardproject.net/gallery/Packages/Modules/Details/Keep-Alive-1-0

Feb 12, 2011 at 8:47 PM

does this module have the option to change the time between pings?

Coordinator
Feb 12, 2011 at 9:53 PM

No, not yet. I might add it if I see huge demand. Currently it's one minute. I don't think you would need more frequent pings. And it's a very cheap call as the controller can't be simpler, just returning an "alive" token.

Feb 13, 2011 at 12:23 AM

Just an added note. All of the shared hosting providers recycle the app pool to free up memory to be shared across virtual servers. I don't think this necessarily an Orchard issue, but sebastienros' module should do the trick. If you have a dedicated server you should just be able select your App Pool and set the Idle Time-out (minutes) setting to "0" in the advanced settings to fix this issue.

Coordinator
Feb 13, 2011 at 1:28 AM

@TwoSeeds: as I said, we are working on this. It's a v1 and lots of things remain to be done. For what it's worth, my own web site is on shared hosting at AdHost and I'm getting 10-15s loading times on a cold start, which is not super good but acceptable. So the situation clearly varies from site to site and from hoster to hoster. We need to gather more data in order to understand what exactly is causing long loading times where they occur and find relevant fixes where possible. I totally understand the frustration but these real conditions only occur when people start using the application in a wide variety of contexts, which did not happen prior to 1.0.

Feb 13, 2011 at 7:54 AM

I've been monitoring my own site this weekend and it seems that the really slow start ups only occur during weekdays. This weekend the pages has loaded very fast 1-6s on randoms accesses with more than 20 minutes between them. Maybe my blog has more readers than I think and that is keeping the site running :D I'm going to monitor the issue next week to see if the load times get slow again. If they do then the issue I'm having is more of a server issue than a Orchard issue.

Feb 13, 2011 at 8:25 AM
Careful, you may actually become dumber reading this ;) but is there a way to cache the compiled program? Or could you have a home page like flash which presents a loading... And then redirects when it's ready?

Sent from my iPhone

On 13/02/2011, at 6:54 PM, "pekkah"<notifications@codeplex.com> wrote:

From: pekkah

I've been monitoring my own site this weekend and it seems that the really slow start ups only occur during weekdays. This weekend the pages has loaded very fast 1-6s on randoms accesses with more than 20 minutes between them. Maybe my blog has more readers than I think and that is keeping the site running :D I'm going to monitor the issue next week to see if the load times get slow again. If they do then the issue I'm having is more of a server issue than a Orchard issue.

Feb 13, 2011 at 2:04 PM

beanpole,

Have you seen this post ( http://www.nogginbox.co.uk/blog/orchard-caching-by-time ) on Orchard cashing?

Feb 13, 2011 at 2:31 PM

Bertrand, since orchard does not allow me to pre-compile before deployment, and I know it has a lot of dynamic things happening during runtime that would preclude precompiliation, I'm guessing the whole app is being recompiled on the first request? Just curious if this is a known cause of the problem, or what stage of discovery we are in.

 

Feb 13, 2011 at 10:00 PM

I don't have time atm @ work to spend time on this.. just sprinting a demo and the performance isn't an issue atm.
If it would had been an issue then i would use ANTS performance profiler as we have several licenses to the .net bundle.

Until then i can only guess that things like creating a blueprint takes time.

Coordinator
Feb 14, 2011 at 11:38 PM

On the compilation questions: it's more complex than that. There are definitely compilation issues, but that is fairly well cached on the server. Jitting is another matter, especially for dependencies.

Feb 15, 2011 at 2:16 PM
sebastienros wrote:

You should take a look at the module I have just released, which will keep the application alive and thus prevent app pool recycling.

http://www.orchardproject.net/gallery/Packages/Modules/Details/Keep-Alive-1-0


I tried the Keep alive modules on two separate sites.  One was a VPS that had a single site running on it, the other was a GoDaddy G4 site.  Under settings the URL was correct, and worked from the local machine.  Browsing to the URL returned th expected "Alive" page.  However, in either case the Keep Alive module failed to keep the site online. 

Feb 15, 2011 at 3:13 PM

and a quick update on my experiment- found this little free site that pings your site every 2 minutes, and so far it seems to be keeping the site alive. it's at http://www.pingalive.com

my personal site running orchard is at http://www.bradymoritz.com

 

Coordinator
Feb 15, 2011 at 8:13 PM

Any kind of pinging will work until your hosting company notices it and blocks it.

Feb 16, 2011 at 12:20 PM

Same big problem here with hosting at arvixe.com! keep-alive = 20 minutes, keep-alive module doesn't help.

Feb 16, 2011 at 4:47 PM

FYI - here's a few sites that will ping your site to keep it alive:

I think UpTimeTobot is free and the other 2 have free options...

Feb 19, 2011 at 8:26 PM
bertrandleroy wrote:

@TwoSeeds: as I said, we are working on this. It's a v1 and lots of things remain to be done. For what it's worth, my own web site is on shared hosting at AdHost and I'm getting 10-15s loading times on a cold start, which is not super good but acceptable. So the situation clearly varies from site to site and from hoster to hoster. We need to gather more data in order to understand what exactly is causing long loading times where they occur and find relevant fixes where possible. I totally understand the frustration but these real conditions only occur when people start using the application in a wide variety of contexts, which did not happen prior to 1.0.

I totally get Betrand's comment.  Let's all be patient and do our best to sharpen this CMS without blaming.  It is free after all.  Also, I am a .Net guy and getting tired of hearing that the LAMP stack has the only great open source projects.  MS has given all of us .Net fans a great opportunity to prove that we can create great open source projects as well.  They have even committed FTEs who have hooks into MVC world and can influence architecture there.  Let's take advantage of this.

Thanks,

Matt

Feb 19, 2011 at 8:36 PM

Matt, agreed, I know I personally am pushing on this issue hard as it is a very foundational make-or-break for my projects. I intend to use it for a lot of smaller sites which will not get much traffic individually, and if the maintainers are thinking that 10 to 15 second load times are reasonable, nothing could be farther from the truth. I need millisecond load times, *all* the time.  and the flipside to your statement regarding the team being well connected etc, is this: if even these guys can't figure it out, then what are we epected to do for our own projects, will this always be a plague that cannot be solved?

I personally have run into this problem with some commercial asp.net apps in the past, actually quite a bit worse.. bad enough that we pulled the plug on a project after having spend thousands on licenses. This was back in the early .net days though, so apparently every single page was compiling as needed, and felt like concrete had been poured around your feet. Running on a high end dedicated server even!

Feb 19, 2011 at 9:36 PM
I here you boomhauer and you make good points as well. We do need millisecond load times all of the time--anything less is unacceptable. Here's to hoping that Orchard gets there and to giving it enough time to have a fair shake.

I am ready to roll up my sleeves and contribute some cool modules but you are correct--if there are systemic .Net problems they will have to be handled by the MS folks before there will be any flood of public contributions.

Thanks,

Matt

On Sat, Feb 19, 2011 at 3:36 PM, boomhauer <notifications@codeplex.com> wrote:

From: boomhauer

Matt, agreed, I know I personally am pushing on this issue hard as it is a very foundational make-or-break for my projects. I intend to use it for a lot of smaller sites which will not get much traffic individually, and if the maintainers are thinking that 10 to 15 second load times are reasonable, nothing could be farther from the truth. I need millisecond load times, *all* the time. and the flipside to your statement regarding the team being well connected etc, is this: if even these guys can't figure it out, then what are we epected to do for our own projects, will this always be a plague that cannot be solved?

I personally have run into this problem with some commercial asp.net apps in the past, actually quite a bit worse.. bad enough that we pulled the plug on a project after having spend thousands on licenses. This was back in the early .net days though, so apparently every single page was compiling as needed, and felt like concrete had been poured around your feet. Running on a high end dedicated server even!

Read the full discussion online.

To add a post to this discussion, reply to this email (orchard@discussions.codeplex.com)

To start a new discussion for this project, email orchard@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe on CodePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at CodePlex.com


Developer
Feb 19, 2011 at 10:33 PM

I've read the whole discussion and have to admit that I'm a bit shocked, as I haven't noticed any bigger performance issues. After restarting the whole site or recycling the AppPool the loading time is around 5 sec. I have a dedicated server which runs 6 VMs (one is my web server on Win Srv 2008 R2, and one of the others is the separate VM for SQL Server 2008 Std). The whole machine is under constant, heavy load and I still can run my Orchard blog in multi-tenant scenario with 5 other (currently used for test purposes) tenants without the noticeable delay. It looks like the biggest issue is not on the Orchard side but rather the providers' web servers.

You should also check a must-have IIS extension - Application Warmup - http://www.iis.net/download/ApplicationWarmup, which ensures the application gets a hot-start even when AppPool gets recycled. I use it from the beginning - maybe it is the case why I haven't noticed any problems?

- Piotr

Feb 19, 2011 at 10:39 PM

I would think the warmup extension would do the trick.

 

Feb 19, 2011 at 10:51 PM
Thanks for the heads up Piotr. I am only about a week into my Orchard adventure and still running localhost so I don't have any delay complaints yet- however, this does seriously influence the decision to continue development.

I will probably shoot a test project over to a shared host next week and do some speed tests.

Thanks again,

Matt

On Sat, Feb 19, 2011 at 2:33 PM, pszmyd <notifications@codeplex.com> wrote:

From: pszmyd

I've read the whole discussion and have to admit that I'm a bit shocked, as I haven't noticed any bigger performance issues. After restarting the whole site or recycling the AppPool the loading time is around 5 sec. I have a dedicated server which runs 6 VMs (one is my web server on Win Srv 2008 R2, and one of the others is the separate VM for SQL Server 2008 Std). The whole machine is under constant, heavy load and I still can run my Orchard blog in multi-tenant scenario with 5 other (currently used for test purposes) tenants without the noticeable delay. It looks like the biggest issue is not on the Orchard side but rather the providers' web servers.

You should also check a must-have IIS extension - Application Warmup - http://www.iis.net/download/ApplicationWarmup, which ensures the application gets a hot-start even when AppPool gets recycled. I use it from the beginning - maybe it is the case why I haven't noticed any problems?

- Piotr

Read the full discussion online.

To add a post to this discussion, reply to this email (orchard@discussions.codeplex.com)

To start a new discussion for this project, email orchard@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe on CodePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at CodePlex.com


Feb 19, 2011 at 10:54 PM

Matt, just to reiterate tho- if you run some ping service to keep things "awake", the problem goes away. So I personally wouldnt let this stop me from continuing using it.

Feb 19, 2011 at 10:57 PM

Agreed. Thanks fellas.

On Feb 19, 2011 5:54 PM, "boomhauer" <notifications@codeplex.com> wrote:
> From: boomhauer
>
> Matt, just to reiterate tho- if you run some ping service to keep things "awake", the problem goes away. So I personally wouldnt let this stop me from continuing using it.
>
>

Feb 21, 2011 at 12:12 PM

I've been using one of the pinging service mentioned above and haven't had any issues with slow cold starts since than.

Coordinator
Feb 21, 2011 at 10:34 PM

Sorry to bring bad news, but better to keep expectations reasonably low now than to disappoint bitterly later.

This here: "I need millisecond load times, *all* the time", that will never happen. It's impossible.

There is simply no way something like Orchard can have such fast cold starts. The only things you can do is keep the application alive all the time (but if you have this level of requirements you had better run full trust on a dedicated server with a full-blown SQL Server), or use tricks such as serving a cached version of the page on a cold start (that is one of the solutions we're looking at but it comes with its own set of caveats).

Feb 21, 2011 at 10:51 PM

Sounds like there is plenty we can do to help ourselves then.  Maybe an article with tips and tricks for speeding things up/keeping the app alive on the Orchard site would be a good thing to do.  Or does this already exist?

Thanks again,

Matt

Coordinator
Feb 21, 2011 at 10:51 PM

That's on my doc plan for 1.1.

Feb 21, 2011 at 10:53 PM

It definitely is possible- it just requires the aformentioned hacks to keep the app from unloading. So, if this is the only way to make it happen, it is going to need an inbuilt way of keeping itself alive.

This is not *my* requirement, this is the world's expectation of a modern web application, including google's. Indexing a slow site will kill ranking (as it should), and odds are google will crawl your site in the middle of the night when nobody is visiting it. Wordpress doesnt have this problem (that I know of) when run on a $5 shared host, yet my dedicated server is murdered by this. And I am looking to Orchard to finally be a viable alternative to wordpress and the stranglehold it has on the open source cms/blog platform.

In the end, whatever the solution is, needs to be built in. We cant afford to have newbies install this app only to be frustrated immediately by the horrific performance.

Feb 21, 2011 at 11:18 PM
bertrandleroy wrote:

Sorry to bring bad news, but better to keep expectations reasonably low now than to disappoint bitterly later.

This here: "I need millisecond load times, *all* the time", that will never happen. It's impossible.

There is simply no way something like Orchard can have such fast cold starts. The only things you can do is keep the application alive all the time (but if you have this level of requirements you had better run full trust on a dedicated server with a full-blown SQL Server), or use tricks such as serving a cached version of the page on a cold start (that is one of the solutions we're looking at but it comes with its own set of caveats).


Bertrand,

Fast first page load times from a cold start is only one aspect of performance and I would hate for that to be the only metric upon which Orchard is evaluated. Quite frankly I would be extremely suprised if any CMS that delivers dynamic contaent from a database could outperform a static HTML webpage on identical hardware assuming both were optimised.

For a low volume site that I have operational (http://support.diydashboard.com/ ) I have been using PingAlive (http://www.pingalive.com ) mentioned earlier to keep the website in memory and PingAlive reports consistent sub-second response times (avg response of 743ms) .  Of couse not all of the 743 is attributable to Orchard as some content comes from Google etc and the speed of the lines has an effect etc. In any case I consider this performance quite acceptable for this site.

What  I would like to know, and don't have a proper environment to test, is how Orchard would perform on a high traffic site like Amazon or YouTube? For a mission critical e-commerce site taking hundreds or thousands of orders per second, such things as web farm support are far more critical than cold start times.

Coordinator
Feb 21, 2011 at 11:38 PM

@boomhauer: even if you keep the site alive, there is going to be a cold start at some point. That's why I said it's impossible, you can only mitigate it by making sure it almost never happens. But on shared hosting, that requirement for fast startup from the user is at odds with the requirements of the hoster, which are to increase the site density, so their interest is to shut down sites often. Running on the current version of ASP.NET, low-traffic sites will always have a performance disadvantage when compared with a non-compiled platform such as PHP where there is little difference between cold starts and warm starts. Compounding on that, a CMS such as Orchard is an additional abstraction layer and will always be slower than an equivalent application built on bare MVC.

Again, we have set a high priority on this problem and we are exploring half a dozen different approaches to mitigating it. I want to make clear that we won't perform any miracles but there will be improvements. Guidance will also come.

You said you had dedicated hosting for this, so did you try to configure the application pool so that it doesn't recycle too often?

@JonnyBoats: you are right, there is no way a CMS can outperform static contents (and let it be clear, static contents is often exactly what you need and can't be beaten for certain sites).

We have no idea how Orchard would react with the kind of load that YouTube or Amazon are getting, which is another way to say that it wouldn't work well. But how many such sites are there in the world and how many such sites are really running an off the shelf CMS?

Feb 21, 2011 at 11:49 PM

Bertrand, yes since I have a ded server, I have options.... although changing pool timeout isnt one, because I cannot even have it time out even once and get this 20 second load... so i use the ping approach so far.

But I'm looking for this project to have broad community support. my company plans to offer products around it etc. And so my concern is more geared toward the casual shared-hosting grade user, the one whose support we will need to make this work.. also the same ones that make up 99% of wordpress users. And the same ones who will ditch it after experiencing this load.

I'm sure this will be substantially improved, as there is no logical reason an app should take 20 seconds to start when running on a powerful server. There must be some timeouts or something ridiculous going on.

 

Coordinator
Feb 21, 2011 at 11:54 PM

Unfortunately no, there is not "something ridiculous" going on. It's doing useful stuff. We are actively investigating mitigations is the best I can tell you at this point.

Feb 22, 2011 at 12:28 AM

Have any of you worked with N2 CMS (http://n2cms.com/)?  As a contract developer, I have been working with this CMS on a fairly large Microsoft web application (not sure if I am allowed to say which) and it doesn't seem to have any slow loading problems.  This CMS is, as far as I can tell, fairly similar to Orchard.  Granted, it is not an apples-to-apples comparison to the shared hosting anecdote (our app runs on 2 web servers + 1 dedicated SQL server), but my point is that the loading speeds have been nailed down for an MVC-based CMS and this CMS has proven itself on an app with a fairly large traffic load.

I am far from the smartest guy on this discussion thread, but I think that this proof-of-concept is good news for Orchard.  What excites me is seeing a ton of module development being crowd-sourced which is something I don't think N2 has much of.

Thanks,

Matt 

Coordinator
Feb 22, 2011 at 12:38 AM

Did anyone measure their cold start time on the same machine as an Orchard instance?

Developer
Feb 22, 2011 at 12:53 AM
Edited Feb 22, 2011 at 12:54 AM

I've tried N2CMS some time ago before Orchard and was somehow disappointed. It seemed very complex (mixed MVC and WebForms, weird admin UI I just didn't "feel"), and much far from the "default" way of developing ASP.NET apps comparing to Orchard. I don't know exactly how it is now, but I guess the learning curve is still much bigger than Orchard's.

About performance - Orchard surely needs some benchmarking and comparison to other ASP.NET CMSes (N2CMS in particular as both are OSS). Unfortunately I haven't done anything like that. But afair, Orchard current performance comparing to N2CMS performance at that time (a year ago) is slightly lower though (just my subjective feeling).

- Piotr

Developer
Feb 22, 2011 at 12:56 AM

@Bertrand: I can do some benchmarking on Thursday on a ded server - I'm gonna have some spare time then:)

Coordinator
Feb 22, 2011 at 1:14 AM

Thanks. Let me know what you find.

Feb 22, 2011 at 1:17 AM

You are correct, Piotr--the learning curve for N2 is crazy.  Orchard sails past N2 in that regard.  My point is only that it won't be impossible (IMHO) for us to ultimately see the same performance with Orchard.

Feb 22, 2011 at 1:20 AM

N2 and several other projects have been good attempts. Nothing out there has been good enough to get me to use it. And I've tried EVERYTHING.

DNN has a big foothold just because it's been around so long. After using it on two sites, I couldnt wait to get away from it.

This project is the right one. We just gotta make it work.

Coordinator
Feb 22, 2011 at 1:31 AM

>This project is the right one. We just gotta make it work.

And we're extremely committed to that. I'll try to give regular updates on this thread as we understand this better. For the moment, we are seeing lots of different strategies at different hosters, leading to widely varying performance both on cold start and subsequent requests, which will make guidance documentation all the more important. We are also seeing interesting things when we compare with other applications, which is a way to try and eliminate some variables.

Developer
Feb 22, 2011 at 1:49 AM

@boomhauer: Had exactly the same feelings:D Tried everything - N2/DNN/Umbraco/Kentico/Sitefinity etc. until Orchard came...

Feb 22, 2011 at 1:56 AM

Bertrand, you stated

"We have no idea how Orchard would react with the kind of load that YouTube or Amazon are getting, which is another way to say that it wouldn't work well. But how many such sites are there in the world and how many such sites are really running an off the shelf CMS?"

I was not suggesting that _any_ 1.0 release would be fully optimised for anything. What I am suggesting is that the underlying framework upon which Orchard has a proven track record of superior performance which should make it possible for Orchard to really shine on web farms etc in the future once it has been optimised.

Test results for Wordpress (and other applications) suggests that their performance on a WIS? (Windows/IIS/SQLServer/?) stack is superior to a LAMP ((Linux/Apache/MySQL/PHP) stack.  If the W... stack can run Bing, it should be able to support Orchard in a high volume environment.

The point of all this is that one needs to understand what sort of environment Orchard is good for.

Rarely is any product ideal for all uses. Consider a Smart Car and a Ferrari, they are both very good cars but I suspect if you choose one when you really wanted the other you will be extremely disapointed. (And besides does anyone who owns a Ferrari worry about gas milage?)

So if someone wants fast load times from the absolute cheapest shared hoster, static HTML is probably the way to go.

A step up, someday soon, may be hosters who take the time to understand Orchard and work hard to make ther servers "Orchard friendly".

And for people who want e-commerce at anything but the lowest level, shared hosting is problimatic in that very few shared hosters can pass a compliance audit for credit card processing.

 

 

Coordinator
Feb 22, 2011 at 4:05 AM

Just want to point out it sounds like this thread is now diverging into 3 distincts topics related to performance:

1) Startup time: time to serve the first request when the application is "cold" (i.e. application is not loaded or hasn't been used for a while)

2) Response time: typical response time of serving a page (once application is "warm")

3) Scalability: how well do you scale when there is more load on the site, and can you deploy the app on Web Farms.

For 2) and 3) I don't see any reason Orchard can't compete in the short/medium term with other comparable (i.e. cms) .net and php apps. We are certainly not 100% there for 1.0, but there are plenty of things we can do.

  • Wrt to 2) Orchard already compares reasonably well on the shared hoster account I have been using for experiments.
  • Wrt to 3), we've observed almost linear scalability from 4CPU to 12CPU on high load traffic. We've also built Orchard with Web Farms in mind, and it should be possible to deploy Orchard on Web Farms. We do support Azure deployments, for example.

For 1), it's really tricky, especially given the expectations that it should take "a few msec". These are perfectly reasonable expectations (nobody wants to wait more than a 1sec for a web page in this day and age), but, as Bertrand said, it's just not possible in the context of a shared hoster+low traffic web site. For example, on the same shared hoster account I'm using to test Orchard, I have been seening from 5sec to 30+sec startup time for some popular PHP apps (and very basic site content). Now that i think of it, this might be one of the reasons Wordpress offers hosting on wordpress.com (so they can optimize on their particular application). This is also one of the reasons we built the "muti-tenancy" module. It could be used by shared hosters to host many orchard sites at low cost. For example, it would increase the probability of the Orchard "App" to be alive, as a request to any of the tenants would be enough to keep all tenants alive until the next time-out. The memory footprint of each additional tenant in a multi-tenant setup is almost negligible compared to an full IIS Site + dedicated AppPool. The drawback would be that, as a user, you'd have limited options to the set of modules you can use, and also less control over the configuration, etc.

That said, as Bertrand said, we keep looking at this...

Renaud

 

Feb 22, 2011 at 7:48 AM

Is there a way to lock a thread in CodePlex? I think this thread has done its job and should be locked until the team can provide more information and perhaps some solutions on how to optimize the cold starts. All this talk going in circles is not going to help anyone.


Only solution so far that has helped is to use one of the ping services mentioned above.


From the statistics from pingalive my site has been responding mostly under 150ms for past two weeks.

Feb 28, 2011 at 5:01 PM

I just want to add that I don't appear to be having the problems that people above our with cold starts.  I'm on the $7.99 4th Gen GoDaddy plan and I have yet to run into this problem on the test site even after several hours away. Maybe I'm just lucky....  The only issue I have had so far is a slow loading blog page that seems to be a slow GoDaddy database issue. 

Coordinator
Mar 15, 2011 at 9:39 PM

All,

Ater looking at many options and measuring a bunch of things, we came up with a feature that could help with this. It's only a partial solution, so we would like to run it with you guys to see what you think.

Basically, what we are noticing is that, the best possible response time we can get for a simple ASP.NET MVC app (WebForms is not that different) on a heavily loaded machine is around 3-5 sec (depending on the load). This is mostly due to disk I/O contention. What this means is that the very first time an Orchard web site can run _any_ code is after initial delay (i.e. code in Orchard.Web\Global.ascx), which is already noticeable. This doesn't leave us a lot of room as, for example, merely loading the Orchard.Framework.dll assembly take additional time, not counting all the dependent assemblies (MVC, Razor, Autofac, NHibernate, log4net, etc.). So, we came to the conclusion that we needed to find a way to serve pages without running any code if we wanted the best results...

Given that, we came up with a "best bang for the buck" feature we could think of:

  • The very first time a request is received by the application, instead of starting-up Orchard and waiting for all assemblies to load and the app to initialize, we would add a very small piece of code which would check a local "warmup" cache (in App_data/Warmup) which would contain static version of "some" pages. If the static file is found, the startup code initiates a background task to initialize Orchard, and, instead of waiting, serves the static file and returns directly. The startup code will only start serving "real" pages on subsequent requests when the Orchard initialization background thread has signaled it's done.
  • In addition to that, we are going to create a new Orchard module which will let users configure what pages to generate in this "warm up cache", and when to these pages needs to be refreshed. Without going into too much details, it will basically be a list of URLS that the user can enter and modify, and the ability to re-generate the cache manually or using events (i.e. re-generate every 60 min, re-generate when a content item is published).

All in all, the experience will be the following:

  • Admin: The admin user activates the new "Fast Warmup" module, configures which URLs to generate warmup HTML pages for, and when. By default, the module will be configured to cache the homepage if enabled.
  • Visitors: When any user visits one of these URLs and the application has been shutdown, the user will receive the "warmup" cache version of the page. This means that visitors hitting the "warmup" phase will get a slightly outdated version of the URL, but the page will display within seconds instead of 1-2 min in the worst cases we have seen.

A few additional details/caveats for clarification

  • The "Warmup" cache files will only contain "anonymous" versions of pages, i.e. there will be no way to cache pages which requires authentication. Since the Orchard framework is not started when these files are serviced, there is no obvious way to authenticate.
  • If the user hits a URL for a page not present in the warmup cache, the experience will be the same as today (i.e. wait until Orchard is fully started)
  • If the user hits a "warmup" url _after_ the application has finished started-up, the "real" page will be served (i.e. usual behavior). So, this is really a "Warmup" cache feature only, not a general purpose caching feature.

Also, to be clear, this is a "tactical" change we are making for 1.1 (we only have a few weeks left, and many other features we are working on at the same time), we will go back to the drawing board again for the release after that...

 

So, what do you guys think? Would this be useful enough to alleviate the problems you are running into in shared hosting?

 

Thanks,

Renaud

Mar 15, 2011 at 10:07 PM

Sounds good as a tactical fix.

Mar 15, 2011 at 10:11 PM

And, perhaps this approach can be further developed into a general caching addon for the app as well, thus serving dual purpose.

Mar 16, 2011 at 3:05 AM

Renald,

It sounds like the team has spent a lot of time and effort working on this issue, and your tactical solution seems well thought out and practical. Only time will tell how well it will work on the mariad of hosters in the real world.

I would encourage you to also put some effort into providing guidance to firms who run shared hosting and who wish to deliver the best possible experience for their customers who run Orchard. Perhaps a simple "tips and tricks" cheatsheet if nothing else.

Thank you for your continuing effort with this difficult task.

Coordinator
Mar 16, 2011 at 4:04 AM

Jonny: Yes, we also have a plan to write a doc page on how to host orchard on different environments (dedicated server, virtual server, azure, shared hosting, etc.). Bertrand can probably shime in when/if there is more progress on that front.

Mar 16, 2011 at 2:21 PM
rpaquay wrote:

Jonny: Yes, we also have a plan to write a doc page on how to host orchard on different environments (dedicated server, virtual server, azure, shared hosting, etc.). Bertrand can probably shime in when/if there is more progress on that front.


Renaud, That is excellent and I look forward to it.

What I am looking for is specific guidance for a hoster who wishes to deliver the best possible experience for his Orchard customers. Perhaps a specific example might be in order. Assuming the following to be true, guidance might state "While Orchard can run both under Unix using mono and Windows, we have determined that for best performance Windows Server 2008 R2 provides superior throughput as compared to either Unix or prior versions of Windows server."

So for example,  a hoster running lots of Orchard sites would want to know:

  • How is Orchard impacted by the specific version of Windows being run?
    What impact does running 64bit vs 32 Windows have?
    For a given load, how does the amount of memory on the server impact response times?
    What key features (such as the IIS warm-up module) are important to Orchard performance?
    Can performance be improved by placing items in the GAC?

Thanks,

Mar 17, 2011 at 12:02 PM

I am concerned about this start-up problem as well which might unfortunately stop me using Orchard for my current project :(.  

I have read that IIS 7.5 and .NET 4 has an auto-start functionality which can be enabled, post available here.  It requires an entry point for building the cache.  Has anyone tried this?

Thanks, 

Mar 17, 2011 at 7:03 PM

Renaud,

The "Fast Warmup" module sounds like a good initial tactical solution.

I see this being perfect for my clients that mainly have "Pages" as the main source of their content and not blog posts or products in their product catalog. It will be easy to specify the pages as candidates for warmup and nearly all the traffic will just be going to those pages.

Where this module might not be so beneficial is with websites that are heavily comprised of blog posts, products in product catalogs, etc. Unless you cached every post, category, tag, product detail page, etc. you will probably end up with the initial startup delay as those individual posts, product detail pages, categories, and tags will be the ones showing up in search engine results and not necessarily your home, contact, and about pages.

Just brainstorming here, but unless we can put a cached version of every URL on the website in the App_Data/Warmup, maybe we can specify a generic "loading screen" for pages that are not in the cache, redirect to a page that is being cached, and/or redirect back to the page being requested once Orchard is up and running.

Don't throw anything at me, but I am also wondering if there can be some type of report module that helps us optimize which pages are best cached based on the requests coming to the website. If I have a blog post or product that is constantly being requested but not cached and therefore the users constantly have to wait the long delay, I would like to know about it so I can have that paged cached. I am not expecting a report that replaces Google Analytics, but rather something that will at least tell me what requests are triggering start-up to help me determine which URL's are a good candidate for the cache.

Hope this helps.

Dave

Mar 25, 2011 at 2:17 AM

Man, this is not a good sign. This is not a solution -it's barely a band aid. To think the users will have to suffer the long waits when they click on links that redirect to pages requiring authentication is not good. Come on guys, no more band aids. Let's get something out there that loads pages 2-3 seconds max even if a app pool is recycled.

I'm a huge fan of MVC 3 and really like Orchard but these long waits are just not acceptable. This is killing the project. I've talked with other developers and they invested time in this project only to discover these long waits time go live comes. This is not good. Hope something is done soon.

Coordinator
Mar 25, 2011 at 3:34 AM

This is a temporary solution. You have to understand that on these hosters, *nothing*, even a simple hello world, takes less than 6 seconds on a cold start in the worst conditions.

Mar 25, 2011 at 6:26 PM

Personally I would like to see lots more focus on what works rather than what doesn't.

I put up a production Orchard website on shared hosting for a client and anyone is welcome to judge performance for themselves (http://www.morningbridgecenter.com/ ).

<rant on>

I think people need to spend more time looking for hosters who are capible of running Orchard properly and less focusing on those who are incompitent.

I program in Windows using .NET every day and am able to get lots done. I also know lots of Un*x guys who have never owned a Windows computer who continually tell me Windows is totally incapible. When I want to learn best practices I would much rather spend my time with those who achieve success than those who are convinced that they can not do it.

<rant off> Just my 2 cents worth.

Mar 25, 2011 at 8:52 PM

Hmmm... You know you make an excellent point about focusing on the positive.

Truth is, we have not experienced any delay on our website that uses shared hosting. Everytime we visit the website the pages come up immediately. Now granted we have lives, so we aren't obsessing over startup delays when we are sleeping and spending quality time with the family :) If you experience an unacceptable delay, please let us know.

http://www.sarasota.me/

Although we have several servers we use them for developing Orchard websites only. We choose to host our website on shared hosting because that is what are clients use. We don't want to experience anything different than they do.

That being said, there is a noticeable startup delay when an Orchard website starts. Are we concerned about it? Not really. A longer startup delay is the price of an awesomely modular, self-discovering, application framework. The fact that our clients can download a module from the Orchard Gallery and have it self-discovered, enabled, and functioning in minutes is just too awesome. And for us, who are using shared hosting, we are not seeing the startup delay, because I can only assume our website is getting enough traffic to stay alive and we aren't on a bottom-of-the-barrel shared hosting provider that will automatically recycle our website every 20 minutes to save a penny. If $8/month can give us that, yeah for us :)

We are on board, but we are taking the claims seriously. We think the warmup module is a fine temporary solution for those that are experiencing the problem. We blogged about it here:

http://www.sarasota.me/blog/orchard-warmup-module-orchard-startup-times-on-shared-hosting

We just ran a test on the Orchard Keep Alive Module. It worked beautifully in our informal tests:

http://www.sarasota.me/blog/orchard-startup-times-orchard-keep-alive-module-pinging

Our gut is that unless your website gets NO traffic and you are on a questionable host provider that recycles your website for kicks, you should be fine. Good tactical solutions would be the upcoming Orchard Warmup Module, the Keep Alive Module, a free ping service if your host doesn't block it, and we are next testing the IIS Application Warmup Module ( again for kicks ).

We truly don't realize how lucky we have it. Orchard is built on some very impressive technologies that we have been using all along: MVC, Razor, NHibernate, DynamicProxy, Autofac, jQuery, Lucene, etc. We were developing with an in-house, custom version of the P&P WCSF for MVC that shared a similar modular, self-discovering framework and it wasn't as close to being as cool as Orchard. We aren't going to sweat a startup delay on a 1.0 solution that looks to be manageable with the right hosting, some traffic, and a few tactical solutions for those that cannot tolerate any delay based on their situation.

We still want the Orchard Developer Team to give these claims the attention they deserve and we are going to voice our concerns and suggestions at all times. Honestly, however, we are just expressing these concerns only to get the fastest startup times possible so it is not even questioned by developers using alternative solutions.

+1 for Orchard. Awesome choice of technologies and the new features in 1.1 are spot on for what we need. Wish we could be at Mix 11 to cheer you on!

Mar 25, 2011 at 9:34 PM

David, it's not a gut, it's a fact that your site must get no traffic for 20 minutes in order for this to recycle (per the default recycle timeout on iis 7+). You should be able to emulate this by re-saving your web.config and force the app to restart.

I have a large dedicated server that takes 20 seconds to start up. The default IIS 7 recycle time is 20 minues, if no requests come in. I'm running a ping tool to keep it responsive.

I won't repeat everything I've posted already (go back and re-read if you like), but this topic is so vitally important not just for Orchard, but for open source ASP.Net/MVC/ all of MICROSOFT to compete in this market. Orchard WILL be compared to Wordpress, and users will leave Orchard (or, stay with wordpress) over this problem.  And that is where nearly all of open source web projects are being built today- a stupid blog engine bastardized to function as a cms and anything else you can think of. If you even want to show up on the radar, you have to be better than wordpress.

So, we're talking survival here. 

Don't tell me about all the wonderful things going on under the hood. I already appreciate those. Tell that to the non-techie who just fired up their first orchard site and waited 20 seconds for it to load.

Not to mention the fact that I cant for the life of me figure out how any app can take 20 seconds to launch on a quad core steroid-injected dedicated webserver, when my little laptop launches photoshop in less than 5.

Mar 25, 2011 at 10:50 PM
Edited Mar 25, 2011 at 10:52 PM

I'm finding that Orchard runs excruciatingly slow when I debug from VWD. Not just cold starts - every single page access can take 10-30 seconds.

What I'm seeing in the console window are a ton of Exceptions. These are all obviously being handled - but as we know, exceptions present an extremely serious performance problem. They shouldn't be the norm; that's why they're called "Exceptions"!

I just tried a compile / run in VWD to copy and paste the output in here. But there were 2,500 lines of output; most of these exceptions (!) I didn't want to break this thread with all that :)

I can't easily find out what's causing them - they're mostly coming from System.Web and mscorlib, some of them are trust exceptions, some are null references and argument exceptions. Unfortunately VWD doesn't seem to have a "Break on all Exceptions" option anymore (is this since SP1?)

I think these exceptions are largely the key to the performance problems. There seem to be a largest volume of them happen on application startup, less so on normal page access (but still far too many). I think the reason for the debugger running so slowly is also related to this.

I'm wondering if any of this is buried in NHibernate - I recall noticing a variety of problems some time ago when I tried to use the library (along with Medium Trust issues which at the time were unsolvable, the main reason I stopped using it!)

So I'm absolutely convinced that these exceptions are the cause of bad performance and the first area to target to improve things. The Warmup system is certainly nice, and once the application is decently performant will be even nicer! I think the only reason my website is running half decently now is because it's on a pretty good dedicated server with low load; nevertheless other websites on it are nearly instant on every single page access, whereas my two Orchard sites are sluggish. Luckily not a problem at this stage for my uses, but I can see how it'd be a huge consideration for anyone expecting high volume!

One last test I ran while I was typing some of this; I compiled and ran in Release mode with debug="false" in my Web.config. Seems to be running way better even than the debug-compiled version was without the debugger attached. I believe Exceptions cause a much bigger problem in debug, since the MSIL compiler has to put in extra instructions to allow for debug handling.

Mar 25, 2011 at 10:53 PM

rando, i suspect something is wrong with your particular instance, as at least in my case, orchard is pretty dang fast after the initial load. Definitely interested in hearing more about what you find out though.

Mar 25, 2011 at 11:06 PM
Edited Mar 25, 2011 at 11:06 PM

It runs perfectly reasonably just from IIS Express or without the debugger attached. But as soon as I'm debugging it falls over ... still works, just takes forever on each page. I'll test some more with a clean instance (there are very few modifications in this one tho). It could also be that I'm using VWD not VS... but since a lot of people are reporting performance problems, there has to be something not quite right. And all those exceptions ... they're clearly getting handled, because the page displays eventually, so somewhere handling code has been built in to accommodate them. I looked at the output window for a vanilla MVC 3 / EFCodeFirst website I built very recently and there were no exceptions, so it's not a general problem with .NET or my machine.

Developer
Mar 25, 2011 at 11:16 PM

You're probably working with dev source. I noticed that too - recently, when I updated my source enlistment on dev branch. Suddenly everything slowed down. I noticed that there are tons of exceptions from System.Web (mainly) which makes development a real pain. But it's the dev source so I totally understand that something like this may happen. Code from default branch runs pretty fast though, but I also noticed (via IntelliTrace) lots of catched exceptions.

And I guess we should talk about that in separate thread:)

Mar 25, 2011 at 11:57 PM

boomhauer,

Please re-read my post, because I have already mentioned how we have acknowledged a delay in startup and how important it is to minimize the delay. Unless I am mistaken, we agree on the situation, but I just don't think it is all doom and gloom. We all realize it is an important topic, hence the fact that there are 80 comments.

My points are several:

  • There are tactical solutions in place right now to minimize this problem.
  • The development team is actively working on a temporary solution for Orchard 1.1 why they look at the problem more in-depth.
  • Acknowledge that this problem is impacting some more than others and not everyone is experiencing a situation that is fight or flight.

As I have said and the person before me mentioned, our sites are running fine. My bet is that there are others like it. Do we still want as short as startup as possible? Hell yes. Do I think this will be solved? Absolutely. Do I think the startup times will be those of a less-featured, less-powerful, and in your words, a stupid blog engine bastardized to function as a cms, No! It won't, and I don't expect it to be.

This is 1.0. We could spend all day talking about 1.0 products that had issues and are here alive and well many versions later. I believe Orchard will be such a product.

This is my last post on this topic until I experience the Warmup Module in Orchard 1.1 and can provide constructive comments on this topic.

Hope this helps.

Dave

Mar 26, 2011 at 1:29 AM
pszmyd wrote:

You're probably working with dev source. I noticed that too - recently, when I updated my source enlistment on dev branch. Suddenly everything slowed down. I noticed that there are tons of exceptions from System.Web (mainly) which makes development a real pain. But it's the dev source so I totally understand that something like this may happen. Code from default branch runs pretty fast though, but I also noticed (via IntelliTrace) lots of catched exceptions.

And I guess we should talk about that in separate thread:)

Yes, I'm working from dev branch so we're seeing exactly the same thing. I was thinking I should start a separate thread about the exceptions once I'd done some more testing (like comparing 1.0 with dev).

In general I have only positive things to say about Orchard, but by raising issues we can only help make it better. I can only hope that the devs aren't having such serious problems as me and piotr, all I'm doing is debugging a small amount of module code - debugging the entire application like this would be a nightmare!

Apr 12, 2011 at 10:46 PM
Edited Apr 12, 2011 at 10:50 PM

What is the status of this issue? 

I had canceled presenting on Orchard at a local user group meeting which I subsequently picked back up (and it was a success), and my main reasons for canceling were because of first impressions with performance and learning curve on the data side. Shared hosting support is going to be critical for Orchard's success in my opinion, and at the presentation I felt that I had to tell everyone that it's a great technology but only if you have dedicated hosting, but to wait a while before putting it on shared hosting.

I'm following up on this because v1.1 was released but no mention of performance improvements was explicitly shown in the release notes.

Coordinator
Apr 12, 2011 at 10:48 PM

Status is that we made a number of improvements, and also shipped the warmup module. You also have a number of cloud-hosted versions that seem to run great.

Apr 12, 2011 at 10:52 PM

Can someone verify perf improvements on discountasp.net / godaddy et al vanilla shared hosting in v1.1? I'll test myself eventually but am asking for others' experiences first.

Apr 13, 2011 at 2:04 AM
Edited Apr 13, 2011 at 2:05 AM

I can't verify permonance on specific hosts, but in general it's noticably improved lots on localhost, and the specific issue me and pszmyd were talking about is definitely fixed.

Apr 13, 2011 at 8:15 AM

Very cool, thanks for the reply!

Apr 15, 2011 at 11:48 AM

I've try v.1.1.30, it's still takes up to 60 seconds for startup delay. I think fixing this issue is very important for people to decide using Orchard CMS.

Apr 15, 2011 at 7:30 PM
Edited Apr 16, 2011 at 5:16 AM

Hmm, I'm not sure I can see a difference in Start-up time in 1.1.30 vs 1.0.  If there's some improvement, it doesn't appear to be huge.

Seems like there's opportunity in the Response-time / Scalability area also - Performance - 30 queries per request? (http://orchard.codeplex.com/discussions/254073).

 

Apr 16, 2011 at 6:29 AM
Edited Apr 19, 2011 at 3:49 AM

I tried out the Warmup module.   It's cool..although interesting the way it works out.  It seems to have a series of phases:

  1. The first page takes ~500ms to load - which is great.
  2. During the next phase (about 8.5 seconds) multiple page requests can all be serviced very quickly (150-200ms) and receive the static version of the page.
  3. Then, the next page takes 7.5 seconds to load.  During this phase any page request waits until the full 7.5 seconds elapses.  So, if a page is requested 3 seconds into this phase, it waits 4.5 seconds to be serviced with the dynamic version of the page.  Probably not an issue unless the site's busy, although I do wonder why the static page isn't served during this phase as well...
  4. After that, everything returns to normal (pages loading in 250-350ms and get the dynamic page).

All told, it takes about 16 seconds to start up and resume "normal" operation.  Which is approx. the same as without the Warmup module.

FYI - it looks like the example of how to specify the list of static pages is incorrect - it shows commas between the pages (e.g. "/, /blog"), but it appears they actually need to be on separate lines e.g.:

    /

    /blog

 I didn't test the "The Generate warmup pages periodically" or "Generate warmup pages each time some content is published" options, but the concepts are spot on!!!

So, here's the big question - given that most pages change very infrequently (and the performance that could be gained):

"Can the warmup module be extended to allow use of static versions of certain pages all the time?  ...using the two options listed above ("Generate pages periodically" and "Generate warmup pages each time content is published")

Apr 19, 2011 at 3:51 AM

One additional note on the Warmup module post above:

  • Apparently, disabling it currently doesn't stop it from serving the static pages during warm-up.

Renamed App_Data/Warmup to Warmup.bak appears to stop the serving of static pages.  This might be handy, because to begin serving the static pages, I just renamed it back to Warmup...


May 12, 2011 at 3:53 PM
Hi,
I'm new to the whole CMS sceene but have found with Orchard it's a matter of finding the right shared host account. I am in the uk and have now taken an account with 'aspnethosting.co.uk' who are on the 'wsp' list. Even their basic package comes with the .net 4 framework enabled and I am getting an average startup of just 10 seconds for a new connection and once the site has booted new pages load so fast you don't even see it happen.
Another host was offering a 500mb dedicated app_pool on their basic accounts, but £30.00 a year for testing websites on is a lot more than I am paying at aspnethosting.
If your in the uk, or don't mind where your server is based try them. I also found that their tech support team is very quick and helpful.
pekkah wrote:

Hi,

Is anyone else having serious startup issues with Orchard running on a shared hosting plans like in DiscountASP.Net?

Sometimes it takes minutes to get the app started. After that site works fine for a while and then when revisiting the site again same slowdown occurs. I think they are recycling the App Pool or something that makes the whole Orchard restart which causes the slow reply. I'm currently running on SQL CE 4 instead of full SQL server as I first believed the slowdowns were caused by the SQL server.

 

May 25, 2011 at 7:08 AM

@Weedy -

Would you mind posting your website URL?  I'd love to give it a spin...

>>...'aspnethosting.co.uk'... Interesting, looks like their home page is Wordpress and their Favicon is DotNetNuke...

Jun 8, 2011 at 4:34 PM

FYI - The performance is significantly improved on GoDaddy shared hosting in the 1.2 RC release, at least in our scenario.

Coordinator
Jul 18, 2011 at 8:49 PM

We did spent significant amount of time improving startup time for Orchard 1.2. We also specifically measured performance on Godaddy and measured a 3x to 4x improvement (from 90 sec to 20 sec). These numbers can vary of course depending on the number of modules enabled, what they do, as well as the load on the node your application is running on.

Finally, we included the "Orchard.Warmup" module in the base installation, so that startup time can be further decreased to around 2 second if hitting a page stored in the warmup cache. Note that the warmup cache still has to be configured manually in the admin panel.

See also thread http://orchard.codeplex.com/discussions/243857

HTH,

Renaud

Jul 19, 2011 at 9:06 PM

I was using pingalive.com for a while and then switched over to the KeepAlive module which seems to work much better. I'm currently being hosted by GearHost.com and I have to say the performance so far has been outstanding.

Jul 25, 2011 at 11:10 PM

I have finally improved the performance by roughly an order of magnitude.  What a relief!  I was increasingly worried about Orchard due to the very poor performance I was seeing.

Here is the simple configuration that I had, and is not suitable for Orchard:

1. Orchard is hosted on a dedicated VS running WS2008 with plenty of CPU, memory and bandwidth on the West Coast

2. The SQL database is hosted on a DIFFERENT server also running WS2008 with a quad-core CPU, 8GB RAM and more than sufficient bandwidth on the East Coast.

I have this configuration for another MVC application.  It has been working fine for a while. However this configuration makes Orchard almost unusable even if it is a barebone startup Orchard.  

Once I moved the SQL server to the VS that hosts the Orchard, the performance rocketed.

Feb 17, 2012 at 10:46 PM

I have winhost and arvixe, its the same slow coldstart issue with 1.3.10. The cold start is very very slow, varying between 20 seconds and a minute. For kicks, I played around with other themes, so, I tried it with the bind theme and its slower at cold start.

The keepalive module, its not helping either.   

Are there any updates here, anything work... for you recently...

Coordinator
Feb 17, 2012 at 11:07 PM

You should definitely have great results with the Warmup module.

Feb 19, 2012 at 11:35 AM
Edited Dec 27, 2013 at 4:32 PM
I have setup two orchard site on my Shared Windows Hosting these are the modules which i have disabled vandelay favicontheme pickerclassytranslation managertag cloud indexinglucenesearchfeedburnerremote rsstag rsspackaging commands // can be enabledgallery // when there is a need to download a latest module these are the Modules which i have enabled vandelay meta keep alivetask leasewarmup - 12minsmessagingemail messagingcache - enabled for 8000 seconds kosfiz.sitemapkosfiz websiteownerand other built-in Modules By Disabling and enabling the above modules, it helped me decrease the load on CPU and Memory Usage Performance : Keep Alive, Warmup and Cache also helps to reduce load on the CPU and the Memory.
Feb 19, 2012 at 4:42 PM

Not sure if its possible, but it would be nice, if we could configure priorities on modules/pages for the compile dependencies. That way only the minimum is compiled and loaded as needed, i.e. if we could minimize the precomiple or JIT effort on cold start for assets like

  • Landing Pages
  • Menu

I really like the layer architecture, I was wondering if the landing pages (layer) HTML could be cached and served from a temporary HTML dir for static content as a first hit.

Coordinator
Feb 20, 2012 at 1:18 AM

That already exists. It's the Warmup module.

Feb 20, 2012 at 3:06 AM
Edited Feb 20, 2012 at 3:06 AM

yes warmup module i have set the value of warmup to 12mins is tat ok??