Back to all posts

DotNetNuke Performance Settings Explained

Posted on Apr 12, 2008

Posted in category:
Development
DNN

My last article on DotNetNuke administration topics was very popular "DotNetNuke Host Settings Explained", this article is the promised follow up that will provide detailed information on the Performance/Compression settings section of DotNetNuke Host Settings. I will explain what the values do, and also my personal experience with the settings, please keep in mind that all DNN sites are different and your needs may differ from those listed in the article, if you are unsure of the proper settings for you environment, please don't hesitate to ask for assistance in my forum.

Performance Settings

I believe that the performance settings of DotNetNuke are one of the most important configuration items, and most of the time these values are overlooked by site administrators. I will discuss each option in detail below.

Page State Persistence

This setting determines where the Page State (ViewState) is stored for individual pages. The default value for this setting is Page and I personally recommend NEVER changing this value. Other individuals have had success with this option, I, however, have not in the multiple DNN installations that I have setup/configured/maintain.

Module Caching Method

This setting determines where the module cache objects are stored. By default, this is done to disk, if you have the spare memory to use I STRONGLY recommend changing this to "Memory" as you will experience a much faster cache response time. In certain shared hosting environments you will be unable to use "Memory" in a helpful manner. You might need to experiment in your environment to see which works better, or even better you might try out the Snapsis PageBlaster module which allows you to use both types and caches at the page level.

Performance Setting

This setting is used to define which cache level DotNetNuke will use for core items such as portal alias and other items of that nature. I highly recommend setting this value to High Cache as it provides the best performance for your DNN installation.

Authenticated Cacheability

This setting is used to define the cacheability of content for authenticated users, this can be used to optimize what can and cannot be cached by downstream routers and machines when working with authenticated users. For more information on the values in this section please consult MSDN, for all client installations I have left this at the default value.

Compression Setting

This setting is used to define if compression should be used, if you decide to enable this option I recommend using the gzip compression method as it will result in the best gains in performance. Now I will offer a word of caution, this setting has caused some installations to become unresponsive in various DNN configuration environments. Therefore, I strongly recommend that anyone looking to turn on this functionality backup the site before they change the value, otherwise you will be forced to manually modify the Host Settings table if this setting causes problems. If you have this enabled and you have a page that isn't functioning correctly, you may use the "Exclude Paths" setting to specify rules that will exclude pages from compression.

Another alternative to the core compression is to use something like PageBlaster to handle compression, I personally have had better luck implementing external solutions like PageBlaster, but again this is only my experience with DotNetNuke.

Use Whitespace Filter

This setting will strip whitespace from your generated page content following the Regular Expression specified in the Whitespace Filter option under "compression settings". This option is NOT needed if you are using a compression method. If you are not using a compression method and still would like to see a reduction in page size you can use this option which will slim down the HTML size of your pages.

Conclusion

This has been a quick overview of the DotNetNuke performance settings. As I mentioned at the beginning of this article, each environment and system is different and depending on your specific needs a different combination of settings may be appropriate. If you have any comments about this article please share them below, if you have any technical questions please direct them to the forum.