How I Get My DotNetNuke Sites To Run So Fast 

One of the most common questions that I get via the forums on this site, or via e-mail is "How do you get your sites to run so fast".  Although not perfect, my sites typically run a bit faster than your average DotNetNuke sites.  Previously I have kept the exact specifics of my changes to myself, however, with a litle encouragement from the community I have decided to share the full context of the changes that I make to a default DotNetNuke installation to get better baseline performance, as well as extra items that I do to help when I really need that "boost".

Overview

First of all I want to start out by saying that a lot of the information that is displayed here can be found in previous blog postings.  Posts such as DotNetNuke Host Settings Explained, DotNetNuke Scheduler Explained, DotNetNuke Performance Settings Explained, and Simple DotNetNuke Performance Enhancements.  Are good starting points for some of the detail behind my recommended changes.

The following changes are simply the configurations that I have found to be the best "baseline" configurations.  Consideration is needed in regards to the site setup, update frequency, traffic, hosting environment and users to ensure that you have the proper setup for your specific environment.  I will discuss the settings section by section, simply noting the changes that are made.  Please reference the specific "Detail" document for more information.

DISCLAIMER: Follow these recommendations as a guide only, I am not responsible for any effects of implementing these changes.

Host -> Host Settings Changes

The first place I visit is the Host Settings page.  There are a number of key updates and changes needed in this section.  Again, only changes are noted here. 

 Appearance

In this section I uncheck the "Show Copyright Credits" box

Advanced -> Authentication Settings

In this section I uncheck "Enabled" for any provider that will not be used in the portal, typically the LiveId and OpenId providers

Advanced -> Performance Settings

In this section I change the "Module Caching Method" to Memory.  the "Performance Setting" to HeavyCaching.  And the "Compression Setting" to GZip Compression.

 Advanced -> Other Settings

In this section I change the "Scheduler Mode" to Timer.  I enable the "Event Log Buffer" and I disable the "Auto-Sync File System" option

These are the most common Host Settings changes that I complete.  Depending on the site I'll make a few other small edits.

Host -> Scheduler Changes

The biggest change that I make here is to change the "SearchEngineScheduler" task to run typically once every 12/24 hours.  This reduces a big load on the server.

Other Changes

From a DotNetNuke configuration change that is all that I modify.  Overall those changes typically result in very noticable performance improvements, but many times it just isn't enough to keep the sites running as smooth as possible.  So depending on the situation I have a number of other items that I work with.

Regular Purging of Event Log

As most people that have used DotNetNuke have discovered the EventLog table can become a very troublesome hinderance on the performance side of a site.  Enabling the Event Log Buffer helps reduce the effects of a large EventLog, however, the best policy is to clean the EventLog on a regular basis.

I do this one of two ways.  On my own sites I have an SSIS package within SQL Server that truncates the table every 24 hours.  On client sites I utilize my Scheduled SQL Jobs module to keep a 7 day rolling history of the EventLog data.  The key here is that we MUST keep the event log small.

Skin Selection and Menu Provider

The next item of consideration is a multi-part consideration.  I focus on finding CSS based skin layouts that utilize third party menu components such as Telerik and Css NavMenu.  With a simple skin change to sites I have noticed page load times that have reduced by over 50%. 

Finding a good designer that creates well laid-out skins with third party menu providers has been a key performance enhancement, at least in the page.  I have NOT benchmarked these numbers though since DNN 4.6.2, so the core menu provider might have better performance.

Compression/Caching Modules

As a last step, if I really need to get the most performance out of a site I will tend to lean towards Snapsis PageBlaster as a good option.  I currently use PageBlaster on this site only and have had very good luck with it, although when configuring the module you must be careful to test all functionality first.  This was another change that once implemented I noticed very visible performance improvements.

Summary

There you have it, that is my secret trick to improving DotNetNuke site performance!  Many people charge a lot of money to make these simple performance tweaks and I just laid them all out on the table for you fre of charge.  Feel free to share your comments below, if you have questions please visit the forums.

Posted by Mitchel on Monday, January 05, 2009
 

Comments

Mitchel, you might want to point out, that disabling "Auto-Sync File System" does not improve view performance. Enabling this option, will resync file entries for the currently selected directory, when creating a file link in URLControl and should be enabled, if the user uploads files using ftp etc.

By Sebastian Leupold on Monday, January 05, 2009 at 8:59 AM

Mitchel,
Thanks for putting together such a great list of things to do to speed up a DNN site. As always your efforts are appreciated.
Thanks,
Tom

By Tom Harris on Monday, January 05, 2009 at 9:02 AM

18 months ago I was doing demos of my site www.AgingSafely.com at trade shows and couldn’t count on having internet access. This meant that I needed “Snappy” performance running as localhost with EVERTHING being done on my laptop. I looked thru dozens of DotNetNuke performance forum posts. I took a list of the dozen or so most common and tried them one or two at a time. Most were the same as your list. There may have had significant performance gains if you are running a site the size of DotNetNuke, but had not observable gains on my site with a few hundred pages and 50 portals. Since much of my setup comes from Lee Sykes DNN Creative videos, I already had event logs that self-pruned, the scheduler limited, etc.

As I worked downs the list I was getting dejected.

When I got to the final item Snapsis PageBlaster, I finally saw “Snappy” performance. I have been a user for 18 months and now am using V3.* and most of its features.

This item should not be last on the list, but should be first on everyone’s list. I also use it for xhtml fix-ups, moving content from one page/site to another, and many other non-performance issues.

Regards - DaveS

By David Snow on Monday, January 05, 2009 at 9:13 AM

Sebastian,

Yes you are correct, when the scheduler is in timer mode. There is a slight gain, at least I have noticed with disabling it when in Request mode, most likely just due to the task starting.

Dave,

Personally I notice the DNN configuration changes helping on the smaller sites, single portal a few hundred pages, and PageBlaster really starts to shine on the Medium to larger sites. For example a site such as DotNetNuke could REALLY benefit from something like PageBlaster.

By mitchel.sellers@gmail.com on Monday, January 05, 2009 at 9:17 AM

What do you think of the PowerDNN database tune-up? They run a process every night that improves the performance dramatically. I am not sure what they do but I can tell the difference each morning.

By .net Development on Monday, January 05, 2009 at 9:50 AM

I will refrain from much discussion about the PowerDNN optimizations.

THey are cleaning the EventLog that is one of the biggest items that they are doing.

By mitchel.sellers@gmail.com on Monday, January 05, 2009 at 9:59 AM

I like your guides and tips. Thanks!

By Tomas on Monday, January 05, 2009 at 2:53 PM

Hi Mitch,

This is a great summary thanks. I was wondering about the menu changes you discuss. One site I manage www.mofga.org uses the solpart menu. How could I change that? Is there a tutorial, guide, etc.? Do you I need to have the skin 'rewritten'? If so, whom might you recommend?

I noticed a big speed up of my sites when I went from shared hosting to dedicated server.

thanks,

Will

By Will Sugg on Tuesday, January 06, 2009 at 4:03 AM

Will,

Modifications to the skin will be needed. Drop me an e-mail at msellers@iowacomputergurus.com and I'll get you in contact with someone.

By mitchel.sellers@gmail.com on Tuesday, January 06, 2009 at 5:41 AM

Super - thanks for posting these - it's good to have a checklist like this to go through.

One question - is pageblaster still worthwhile on a dnn5 site? I remember using it on an early 4.0 site and it made a huge difference, but I got the impression that dnn itself was a lot faster now.

Thanks again - super post

Stuart

By Stuart Lodge on Tuesday, January 06, 2009 at 1:05 PM

yes, with 4.4.1 and later releases performance improvements were done, but PageBlaster still gives a lot of benefits

By mitchel.sellers@gmail.com on Tuesday, January 06, 2009 at 1:41 PM

Just Super ! I experienced a drop in performance when I use my multiple site hosting for a couple of hours. Your article gave me some consideration about host settings. The performance improvement is easily reached, thanks again.

By Mike Wertwyn on Wednesday, January 07, 2009 at 8:56 AM

Hi Mitch,

I do not use the DNN search on my biggest site - it just not get the job done for me so I use google (http://www.mofga.org/Search/tabid/192/Default.aspx). So I should just disable the DNN search from the scheduler altogether, right? - thanks.

By Will Sugg on Wednesday, January 07, 2009 at 12:01 PM

Will,

You are 100% correct, if you are not using the DNN search, disable the task. It is a BIG performance hit, especially on large sites.

By mitchel.sellers@gmail.com on Wednesday, January 07, 2009 at 12:11 PM

Mitchel, auto file sync in Host Settings has nothing to do with the file sync scheduled task. In fact: the file sync scheduled task should NEVER be activated since it contains serious bugs (it is deactivated when upgrading to dnn 4.9.0 even). Like Sebastian says, the auto file sync sincs the filesystem on a "need to know" basis, ie. when the dnn url control is displayed, or when the core filemanager is displayed. I would not recommend turning it of

By erik van ballegoij on Thursday, January 08, 2009 at 4:02 AM

Erik,

In some ways I agree, but I have seen it cause errors, and with MOST people that I talk to NOT FTPing files to the site, it is not needed, and is an added performance hit. I should put a bigger note there about its purpose though.

By mitchel.sellers@gmail.com on Thursday, January 08, 2009 at 4:07 AM

In general, any scheduled task shall only be enabled, if needed. unfortunately, this requires understanding of the various tasks, its purpose and effects. Search is in most cases the most "expensive" tasks any it should be considered carefully, whether it is needed and how often it shall run.
Scheduled FileSync will be eliminated in next DNN version (5.0.1/4.9.2). I have never experienced issues with AutoFileSync, neither myself nor from forum users. I can imagine issues only, when files are locked by other processes of missing folder permissions.

By Sebastian Leupold on Thursday, January 08, 2009 at 4:24 AM

I agree 100% with that Sebastian in regards to the enable/disabling of scheduled tasks. It isn't something that you should leave at default, and it takes careful consideration.

It is good to know that the File Sync task is getting removed.

My only complaint about Auto-Sync is that since it syncs every time that a URL control is displayed, or in file manager, in sites with a lot of files, and NO FTP uploads, there is a performance hit on the load of those controls. But it is less of an issue than some of the other items, because it is an admin-only visible issue.

By mitchel.sellers@gmail.com on Thursday, January 08, 2009 at 5:03 AM

I would also recommend a pinging/keep alive service or application. smarterping is a good free tool if you have a server or pc that's always on & connected.

I also wanted to bring up another point since you host at 3essentials too:

http://knowledge.3essentials.com/web-hosting/article/344/Performance-problems-and-tuning-for-ASP.net-based-sites-including-DNN.html



By ech01 on Friday, January 09, 2009 at 6:27 PM

Yes, that is a good point as well.

I'm also going to be launching my own KeepAlive service in the next 1-2 weeks as well.

By mitchel.sellers@gmail.com on Friday, January 09, 2009 at 9:32 PM

I just went thru your checklist on my developing site. The site goes TOO FAST now lol

Great article. Thank you!

By Tak Shimamura on Tuesday, January 13, 2009 at 5:18 AM

Comments from the following blog entry: How I Get My DotNetNuke Sites to Load So Fast, located at: http://www.dotnetkicks.com/opensource/How_I_Get_My_DotNetNuke_Sites_to_Load_So_Fast

By DotNetKicks.com on Friday, January 16, 2009 at 6:55 PM

Very nice document!!, someone have any other document to recomend the best setting for the IIS to use with a big DNN portal? we have al most 200.000 users and 16.000 articles in our portal.

By Christian on Wednesday, January 21, 2009 at 12:40 PM

Comments from the following blog entry: Beef up your performance with DNN (DotNetNuke), located at: http://www.mytechthoughts.com/post/2009/01/27/Beef-up-your-performance-with-DNN-(DotNetNuke).aspx

By My Tech Thoughts on Tuesday, January 27, 2009 at 5:38 PM

Comments from the following blog entry: Beef up your performance with DNN (DotNetNuke), located at: http://www.mytechthoughts.com/post/2009/01/13/Beef-up-your-performance-with-DNN-(DotNetNuke).aspx

By My Tech Thoughts on Tuesday, January 27, 2009 at 5:39 PM

Comments from the following blog entry: Beef up your performance with DNN (DotNetNuke), located at: http://www.mytechthoughts.com/post/2009/01/13/Beef-up-your-performance-with-DNN-(DotNetNuke).aspx

By My Tech Thoughts on Friday, February 06, 2009 at 4:02 AM

Thanks for all your help, I was able to speed up my site considerably: www.shutdownfriday.com

By Shutdown Friday on Wednesday, February 11, 2009 at 8:27 AM

Comments from the following blog entry: A useful article for DNN optimization, located at: http://www.fooloo.net/Home/tabid/126/EntryId/3/A-useful-article-for-DNN-optimization.aspx

By Vioce of Neo Mei on Saturday, February 14, 2009 at 2:15 AM

Comments from the following blog entry: A useful article for DNN optimization, located at: http://www.fooloo.net/Home/tabid/126/EntryId/3/A-useful-article-for-DNN-optimization.aspx

By Vioce of Neo Mei on Saturday, February 14, 2009 at 2:16 AM

Comments from the following blog entry: A useful article for DNN optimization, located at: http://www.fooloo.net/Home/tabid/126/EntryId/3/A-useful-article-for-DNN-optimization.aspx

By Vioce of Neo Mei on Saturday, February 14, 2009 at 5:12 AM

Thank you, thank you, thank you. The speed of my site has been very frustrating. These changes made all the difference in the world. What a difference!!! Thank you!

By Jeremy Setser on Thursday, February 26, 2009 at 2:30 PM

Jeremy,

I'm glad that this has helped you! Spread the word!

By mitchel.sellers@gmail.com on Thursday, February 26, 2009 at 3:02 PM

Comments from the following blog entry: 优化DotNetNuke网站性能的10个技巧, located at: http://www.cnblogs.com/dnnmix/archive/2009/04/16/1437208.html

By Dnnmix on Wednesday, April 15, 2009 at 9:31 PM

Comments from the following blog entry: 优化DotNetNuke网站性能的10个技巧, located at: http://www.cnblogs.com/qing123/archive/2009/04/22/1441064.html

By 情三 on Tuesday, April 21, 2009 at 5:24 PM

Mitchel - This information was unbelievable... I implemented your suggestions and what used to be a somewhat slow loading site... my site now screams (http://www.FroTime.com). Awesome - thanks a ton!

By Brad on Tuesday, July 07, 2009 at 4:12 PM

Comments from the following blog entry: Beef up your performance with DNN (DotNetNuke), located at: http://www.mytechthoughts.com/post/2009/01/13/Beef-up-your-performance-with-DNN-(DotNetNuke).aspx

By My Tech Thoughts on Wednesday, September 16, 2009 at 3:57 PM

On the topic of PageBlaster. I tried it for 3-4 days on DNN5.1.4, but eventually unistalled it. Yes, there is an performace increase (a lot).
I use a lot of Ventrian Property Agent modules and they have a lot of dynamic content, which does not work with PB.

I had to do exclusion for captcha and also I use freindly urls, human readable which cause issues because now it is difficult to exclude pages which are in admin edit mode.
The I also have some AJAX issues, so I had to exclude ajax (issues like the fist time I click, nothing happens, but on second click it post)
I also had to disable the move of js files to the header...had some serious js errors doing this.
Taking into accaount all the stuff I had to disable, I've remove it from my host.

A lot of this exclusions was done because there is multiple portals on one DNN host and some settings are global, so you have to disable features to get all you hosts working.

If you have one site, one DNN instance, then it is a different ballgame because you will need less tweaks to get everything running smooth with PB.

Take note, this is not a negative review on PB, it does have a huge improvment on Performance, but be warned...your time could get blogged down in tweaking and exclusion regular expressions!

By Guss Davey on Tuesday, October 27, 2009 at 5:21 PM

excellent, thanks a lot for this. I've put this to work with good results. In adition to the setup I found that database maintenance can be crucial as well, depending on the size and activity of the project.

By Michael on Thursday, January 07, 2010 at 6:00 AM

hey Mitch,

This may be a stupid question - but can you use the core compression (Host Settings) AND PageBlaster or do you have to disable the former if using PB?

Thanks

By Rodney Joyce on Wednesday, January 13, 2010 at 8:32 AM

Rodney,

If I recall correctly you would NOT want to use core compression if you are using PageBlaster, you would essentially be doing compression twice which will NOT continue to have benefit.

By mitchel.sellers@gmail.com on Wednesday, January 13, 2010 at 8:37 AM

Thanks Mitchel,

That's a very helpful summary.

Regards,

Paul Taylor

By Paul Taylor on Friday, February 05, 2010 at 10:16 PM

And by the way, your Scheduled SQL Jobs module has proved invaluable help in improving site performance.

By Paul Taylor on Friday, February 05, 2010 at 10:20 PM

Thanks for great article. I cannot find Advanced -> Authentication Settings ... under Host settings. Am I missing something?

By jakeman35 on Sunday, March 07, 2010 at 2:24 AM

Jakeman,

They moved it in 5.x in some places. "Admin" -> "Extensions", then click edit next to the one that you want.

By mitchel.sellers@gmail.com on Sunday, March 07, 2010 at 6:03 AM

Mitchel,

Thanks for your article. Just wondered what you thought about this one on the same subject. Lots of duplicates, but some different suggestions as well, would you agree with them all?

http://dotnetnuke-solutions.blogspot.com/2009/02/dnn-optimization-steps.html

By Rob Speksnijder on Tuesday, April 20, 2010 at 12:26 PM

Rob,

I agree with some, but not all.

By mitchel.sellers@gmail.com on Tuesday, April 20, 2010 at 5:47 PM

Thanks, but i was sort of hoping you could be more specific about which ones you don't agree with.

By Rob Speksnijder on Tuesday, April 20, 2010 at 10:25 PM

Principally 1, 14 and 16 (understand if you wouldnt like to comment on all).

By Rob Speksnijder on Tuesday, April 20, 2010 at 10:45 PM

Rob,

I'd rather not post publicly about this, drop me an e-mail at msellers@iowacomputergurus.com and we can discuss.

By mitchel.sellers@gmail.com on Wednesday, April 21, 2010 at 3:57 AM

Thanks for the useful article. One comment on the caching settings however: I found that on shared hosting where you have no control of the process memory allocation, the Memory cache setting tends to produce Out of Memory exceptions. Setting the cache setting to File in these circumstances reduces or eliminates exceptions and is advisable.

By Paul Taylor on Wednesday, May 12, 2010 at 8:09 AM
Click here to post a comment

Disclaimer