views:

640

answers:

6

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  A: 

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.

Kev
You don't really need to pay for additional tools to do this. Everything that is needed for basic performance analysis is already builtin.
RBarryYoung
@RbarryYoung - this is true, my main point was that he should be profiling the app/database instead of clutching at straws. Which tools he chooses is entirely down to him. Also true that there are free tools, but these are pro-tools I've used which do the job just a bit better (IMHO), that's all.
Kev
JetBrains DotTrace has been a life saver - it's shown us the initial database bottleneck (Along with SQL Profiler) then after fixing that it's shown us the navigation and Url Rewriting performance issues.
Peter Bridger
@peter - glad you narrowed it down.
Kev
+3  A: 

Hi, 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

lakhlaniprashant.blogspot.com
We've now added additional indexes and disabled scheduler. Although none of these things were the main bottleneck and haven't improved performance noticably.
Peter Bridger
+4  A: 

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).

bdukes
Thanks, will investigate these menu solutions as our current one is the current bottleneck.
Peter Bridger
+1  A: 

There are a few things you can do to enhance the performance of your site. @bdukes pointed you to a good resource to start but there are many DNN experts can help to offer their expertise in making it better. Not every single piece of software comes out the box is perfect.

DangIT
I'm considering bringing in a DNN expert. Do you know anyone in the Bristol, UK area who would be available for such work?
Peter Bridger
A: 

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

ck
The database is on a seperate server. RAM on both web and database servers are at the maximum allowed by the motherboard/OS.
Peter Bridger
You can't convince me that your server only allows 1 GB of RAM. If that's true, I'm impressed that you managed to install Windows 2003 on a smartphone!
Joel Mueller
A: 

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.

We are now past the adding pages level and into the trying to achieve a decent enough level of performance to launch stage(!)
Peter Bridger