Slow 1st time compile and application warmup
I have been reading posts from both 3x and 4 about slow page load times the 1st time a user hits the site after the app pool has gone idle. Right now we have a few sites in development and we are about to launch one in the next few days so I am worried about how significant this is or is not going to be on our production server.
I expect the app pool to timeout frequently since we are in development and I am basically the only person hitting the site on a daily basis, but I am looking for ways to reduce this load time. It takes anwhere from 15-30 seconds for the site to come up on the initial request.
I have read a post talking about using IIS 7.5 Application Warm up so I installed and tested it out. I am not see any difference and so am curious if others are using it and how they have it confirgured for Sitefinity.
I went to the site in IIS and then to settings under Application Warmup. I made sure there was a check for both "Enable Application Warm-Up" and "Start Application Pool "AppPoolName" when service is started". I then added a request and used the default settings. Finally I recycled the AppPool and tested the site and did not see any change in the load time.
What should I be putting under "Enter URL relative to application root"? I have tried: <physical folder name>/default.aspx, <physical folder name>/<name of homepage set within Sitefinity>, /default.aspx, /<name of homepage set within Sitefinity.
I am using the offical release and debug is turned off in web.config as well. I also want to add that I am using the default settings for the AppPool which I believe is 20 min. for the timeout. Another suggestion I have seen is to increase that timeout, but I am curious to how badly this affects performance on a server with multiple sites (20-40 sites). I know that server specs play a big part in that last question, but wanted to see what the general consensus is.
Has anyone else experimented with speeding up the initial site load of pre-warmup style approaches?
I have a few sites that can get less than 100 visitors a day, and I'd be very interested in hearing what can be done to avoid 15 second delays.
It may not be the most elegant solution but we just set a task that hits the website every 15 minutes. Some webhosts (e.g. discountasp) have this functionality built into their control panel so it takes two seconds to set up. It's not perfect but works for us.
Hello all,
There is a problem with Sitefinity 4.0 and site warm up. The problem is that this version does not use the ASP.NET rendering engine and the warm up has almost no effect but to prime the cache, and if the cache is set to expire after two minutes (using sliding expiration) if no one hits the cached pages within those two minutes the cache will expire.
This is not the case with Sitefinity 4.1 however. We have moved to the ASP.NET rendering engine and use its benefits for page compilation and site warm up. This means that once pages are compiled they will render much faster, as long as there are no edits to the page.
All the best,
Radoslav Georgiev
the Telerik team
I ended up using KMac suggestion since the Beta program "Application Warm" is no longer available and there is no signs it will be back. The batch file code below starts my browser (chrome) and loads my website, waits a bit then and then closes the browser.
I use the Task Scheduler to set this to run every so often and it solved the 30 second load time issue for the first user. The attached image shows the the correct settings for the Task Scheduler; make sure you tell it to run regardless of being logged on.
Batch File:
@echo off
start /min /d "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" http://website.com
ping 127.0.0.1 -n 5 -w 2000 > nul
taskkill /f /im chrome.exe
call timeout 5
EXIT /B 0
We do the same as KMac...
We have a script that runs every 15 minutes to keep the App Pool from recycling.