可怕的DotNetNuke性能问题

5

我参与了一个项目,使用的是DotNetNuke 05.01.04社区版。我们正在使用它来构建新的内部网站,但性能非常差。

我们有五个人在其中添加页面和内容,每隔15-30秒他们会遇到10秒或更长时间的暂停,然后系统才会继续运行并加载下一个屏幕。

服务器是Windows 2003,3.8GHz,1GB RAM。我们的服务器管理员告诉我,CPU和内存性能似乎不是瓶颈。

我们目前在系统中有350个页面,计划再添加1000个。因此,我们需要解决这个性能问题,以便我们可以输入内容并上线。

我只是看不出瓶颈在哪里。在使用DotNetNuke时,有没有好的方法来确定瓶颈所在?

已安装的模块

  • Publish:Engage (目前未使用)
  • Page Blaster (当用户使用集成身份验证登录时,似乎无法提供缓存)
  • SimpleGallery
  • XMod
  • Content Manager

IIS设置
完全禁用应用程序回收(除了2点钟的回收)

新发现:2010年3月18日
主要瓶颈是由于版本5.1.4存在一个错误,导致平均每个页面有1300个数据库往返,因为数据库内存缓存被破坏了。我们升级到了5.2.4,解决了这个瓶颈问题。

现在下一个最大的瓶颈是导航。我们使用了DDR:Menu和DDN:Nav,但两者都对性能产生了重大影响。

是否有一种导航界面可以不会如此严重地降低性能?


性能优化尝试:
  • 将DNN缓存设置为“重”
  • 安装了Page Blaster
  • 禁用了IIS应用程序回收
- Peter Bridger
1
你使用的是哪个SQL Server版本?如果是Express版,那么它只能使用一个CPU,这可能是瓶颈所在吗? - lmsasu
您是否启用了页面压缩(gzip或deflate)?启用了空格过滤吗?此外,尝试在Firefox中安装Firebug和YSlow插件,以查看哪些资源可能需要最长时间来加载。 - Tim S. Van Haren
2
1 GB 的内存对于这种使用水平来说远远不够。 - RBarryYoung
我们发现的下两个瓶颈是:
  • 导航菜单执行大量 XML 工作,导致速度变慢
  • URL 重写也是下一个最大的耗时操作
是否有更高效的导航界面?似乎大多数导航解决方案都会对性能造成很大影响。
- Peter Bridger
显示剩余5条评论
5个回答

6
我认为你需要开始使用性能分析工具来进行调查。对于DNN应用本身,我建议使用像JetBrains的DotTrace或Red Gate的ANTS Performance Profiler这样的工具。
对于数据库,SQL Server Profiler是第一选择,或者使用Red Gate的SQL Response等工具。
如果没有对应用程序进行分析,那么你将会是在瞎猜。
正如Tim在他的评论中指出的那样,在Firefox浏览器中安装Firebug并加入YSlow插件可以查看哪些资源需要最长时间才能提供给浏览器。

你其实不需要支付额外的工具来完成这个任务。所有基本性能分析所需的都已经内置了。 - RBarryYoung
1
@RbarryYoung - 这是真的,我的主要观点是他应该对应用程序/数据库进行分析,而不是抓住稻草。他选择哪些工具完全取决于他自己。也确实有免费的工具,但这些是我使用过的专业工具,它们做得更好一些(在我看来),仅此而已。 - Kev
2
JetBrains DotTrace是一个救命稻草 - 它向我们展示了最初的数据库瓶颈(以及SQL Profiler),然后在解决了这个问题之后,它还向我们展示了导航和URL重写性能问题。 - Peter Bridger
@peter - 很高兴你缩小了范围。 - Kev

4

谢谢,我们会调查这些菜单解决方案,因为我们当前的菜单是瓶颈。 - Peter Bridger

3
我有几年的dnn开发和维护经验。当我遇到这种问题时,我会从数据库清理开始做事。下一步是查找缺失的索引,并/或定期重建所有索引(为此安排了sql作业),但主要的性能提升来自表格清理。
另一个好的考虑因素是禁用跟踪、将调试模式设置为false,并关闭您不使用的dnn功能(计划程序是第一个要关闭的)。
编辑:也要考虑保持活动
希望这可以帮到你。

我们现在已经添加了额外的索引并禁用了调度程序。虽然这些事情都不是主要瓶颈,并且没有明显改善性能。 - Peter Bridger

0

你的数据库在那个服务器上吗?如果是的话,只需增加一些RAM或获取更快的磁盘阵列即可...


数据库位于单独的服务器上。Web服务器和数据库服务器上的RAM均已达到主板/操作系统允许的最大值。 - Peter Bridger
你无法说服我相信你的服务器只允许使用1GB的内存。如果是真的,那么我很惊讶你能在智能手机上安装Windows 2003! - Joel Mueller

0
你有没有考虑通过TSQL直接创建这么多页面?这并不难做,而且可能会节省很多时间。

我们现在已经过了添加页面的阶段,进入了实现足够好的性能以启动阶段(!)。 - Peter Bridger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接