A typical DNN install requires considerable server resources, and creates significant traffic between the database & web server. These techniques aim to reduce both of these where-ever possible, along with some other optimizations. Some of these may not apply to you, and I advise you to exert discretion in deciding which of these work best for you.


About ASPHostPortal.com
ASPHostPortal.com is Microsoft No #1 Recommended Windows and ASP.NET Spotlight Hosting Partner in United States. Microsoft presents this award to ASPHostPortal.com for ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2012, ASP.NET 4.5, ASP.NET MVC 4.0, Silverlight 5 and Visual Studio Lightswitch. Click here for more information

DNN Optimization:

  1. Host Settings
    1. Set the "Performance Setting" to "Heavy Caching".
    2. Depending upon Hosting resources, set the "Compression Setting" to "Deflate Compression" or "GZip Compression".
    3. Depending upon Hosting resources, enable "Whitespace filter" (not of much use, if you have also enabled compression).
    4. Disable "Users Online" for Installations on which "Users Online" module is NOT used.
    5. Set the "Scheduler Mode" to "Timer Method". "Request Mode" causes the Scheduler to be invoked on every request to a page of your installation.
    6. On sites where Logging is NOT mission critical, enable "Event Log Buffer", so that log entries are buffered before being flushed.
    7. On sites where the Site files do NOT update frequently, disable "Auto-sync filesystem".
    8. Uncheck "Enable Ajax" on portals that are just informative, and do NOT involve management tasks.
  2. Admin Settings
    1. On DNN 5 portals, unselect "Enable Skin Widgets" if they are not being used to prevent redundant skin file downloads.
  3. Log Settings
    Disable all Logs NOT required on an installation. In particular,
    1. Disable "Application Start".
    2. Disable "Application End".
    3. You might also want to disable others like "Scheduler Started", "Scheduler Event Started" etc. depending upon if they are not much useful to you. However, "Sceduler event Failure" should not be disabled to enable debugging of any scheduler issues.
  4. Schedule Settings
    Disable or customize all Schdules NOT required on an installation. In particular,
    1. Configure "DotNetNuke.Services.Scheduling.PurgeScheduleHistory, DOTNETNUKE" to run every 5 days (or whatever fits best to your portal depending upon how much Schedule Log your portal generates).
    2. Configure "DotNetNuke.Services.Search.SearchEngineScheduler, DOTNETNUKE" to run every 5 days and retry after 1 day (again depending upon what fits best to your portal. There is no one size fits all approach here).
  5. Javascript & CSS Optimization
    1. Manually optimize all css & js files to remove redundant white-space (or use a free or paid DNN module e.g. Page Blaster to manage this task for you).
    2. Zero out portal.css (if you dont use it, or better still, delete it).
    3. Check ~/portals/_default/default.css for any styles not being used on your portal.
    4. Try to use any other menu except SolPart Menu.
    5. Try NOT to use table based skins (improves the perceived rendering of your page).
  6. Cookies: Set the appropriate value for Persistent & Session cookies in web.config.
  7. Compilation: If you are compiling DotNetNuke or any Extension from source, make sure that you compile the project in Release mode. Moreover, make sure you have debug="false" in web.config for your production sites.