Blogs

How I Get My DotNetNuke Sites To Run So Fast

05 Jan

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 little 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 unchecked the "Show Copyright Credits" box

Advanced -> Authentication Settings

In this section I unchecked "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 noticeableperformance 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 hindrance 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 free of charge.  Feel free to share your comments below, if you have questions please visit the forums.

tags: DNN, Tutorials, DNN Administration, DNN Install/Upgrade
comments powered by Disqus

Content provided in this blog is provided "AS-IS" and the information should be used at your own discretion.  The thoughts and opinions expressed are the personal thoughts of Mitchel Sellers and do not reflect the opinions of his employer.

Connect with Mitchel

I hope the information here has been helpful. To stay connected you can also subscribe to blog updates via email, contact Mitchel about consulting services, or reach out for assistance via CodeMendor

Content Copyright

Content in this blog is copyright protected.  Re-publishing on other websites is allowed as long as proper credit and backlink to the article is provided.  Any other re-publishing or distribution of this content is prohibited without written permission from Mitchel Sellers.