5
votes

I'm involved with a project using DotNetNuke version 05.01.04 Community Edition. We are building our new Intranet using it, but performance is terrible.

We have five people adding pages and content to it and every 15-30 seconds they experience a pause of 10 seconds or longer before the system continues and the next screens loads.

The server is Windows 2003, 3.8GHz with 1GB of RAM. I'm told by our server admin that the CPU and memory performance don't appear to be the bottleneck.

We currently have 350 pages in the system, we a plan to add 1000. So we need to resolve this performance problem so that we can enter content and so we can go live.

I just can't see where the bottleneck is. Is there a good why to determine the bottleneck when using DotNetNuke?

Modules installed

  • Publish:Engage (Not currently in use)
  • Page Blaster (Doesn't appear to providing caching when users logged in using Integrated Authentication)
  • SimpleGallery
  • XMod
  • Content Manager

IIS Setup
Application recycling completely disabled (Apart from a 2am recycle)

New findings: 18th March 2010
The main bottleneck was due to version 5.1.4 having a bug which caused 1300 database roundtrips on an average page, due to broken database in-memory caching. We've upgraded to 5.2.4 which has resolved this bottleneck.

Now the next biggest bottleneck is the navigation. We've used both DDR:Menu and DDN:Nav, but both have a major impact on performance.

Is there a navigation interface out there that doesn't drain performance so badly?

5
Performance tweaked tried: * Set-up DNN caching to 'Heavy' * Installed Page Blaster * Disabled IIS application recycling - Peter Bridger
What SQL Server version do you use? if express edition, then this is known to use only one CPU, maybe this is the bottleneck? - lmsasu
Do you have page compression (gzip or deflate) enabled? Whitespace filtering enabled? Also, try installing Firebug in Firefox with the YSlow add-on to see what resource could be taking the most time to load. - Tim S. Van Haren
1 GB is not nearly enough memory for this usage level. - RBarryYoung
@RBarryYoung - how do you know? We have customers on our dedicated servers with 1GB of RAM, running multiple ASP.NET sites including running DNN with 10,000's hits each hour. They don't have memory issues. - Kev

5 Answers

6
votes

I think you need to start investigating this using performance profiling tools. For the DNN application itself I'd grab something like JetBrains DotTrace or Red Gate's ANTS Performance Profiler.

For the database SQL Server Profiler would be the first choice or a tool such as Red Gate's SQL Response.

Without profiling the application these you're going to be pulling at straws.

And as Tim pointed out in his comment, installing Firebug in Firefox with the YSlow add-in to see what resources are taking longest to serve to the browser.

4
votes

Mitchel Sellers has some good tutorials and checklists to go through with regards to performance in DNN. Start with Explaining High Performance DotNetNuke Configuration and Management (which points to some of his earlier articles).

3
votes

I have several years of dnn development and maintainance experience, when I have this kind of problem, I start doing things from database clean up. Next thing is, find for missing indexes, and/or rebuild all the indexes periodically (sql job scheduled for that) but major performance gain would be from clean up of table

Another good considerations would be, disabling trace, debug mode to false and turn off features of dnn that you don't use (scheduler is the first one to turn off)

Edit: consider keep alive as well Hope this helps

0
votes

Is your database on that server? If so, just throw in some more RAM, or get a faster disk array...

0
votes

Have you considered creating this lot of pages directly through TSQL? It's not hard to do and may save you a lot of time.