ASP.NET /数据库性能清单

时间:2011-07-04 14:11:31

标签: asp.net performance sitecore sitefinity

最近,我们的客户开始抱怨我们的某台服务器性能不佳。 这包含多个大型CMS实施和很多使用Sitefinity的小型网站。 我们的托管团队现在正试图找到我们环境中的瓶颈,因为加载时存在一些主要问题。我已经被赋予了一个任务来指定一个需要注意的重要事项列表,分为不同的部分(IIS,ASP.NET,Web特定)。 我认为根据Sitecore文档e.d,找出我们可以在一台服务器上运行多少个Sitecore CMS实例。我们希望能够监控并找出我们的瓶颈在哪里。我们的一些网站加载速度非常慢,其他网站加载速度非常快。我们在此服务器上运行的大多数Sitecore实现都具有较差的后端性能,并且在编译后加载时间非常糟糕。 我们的Sitecore解决方案在Win 2008 64服务器上运行,其中包含用于db的Microsoft SQL Server 2008。 我理解指定有关我们设置的更详细信息可能很方便,但我希望我们能够获得有关如何监控和查找瓶颈的一些有用的基本信息。

有哪些工具/提示/提示&你有技巧吗?

5 个答案:

答案 0 :(得分:5)

  • 执行不要使用太多不同的asp.net池,在plesk中调用和作为专用池。将更多站点放在同一个池中。
  • 服务器上的更多内存或停止未使用的程序/服务
  • 检查您是否对应用程序池有内存限制,以使池继续自动重新启动。
  • 在数据库中,将恢复模式设置为简单。
  • 从程序内部收缩数据库文件并重新索引数据库
  • 毕竟碎片整理您的磁盘

使用process explorer检查记忆。
要查看服务器的最新信息,请使用autoruns但请注意不要停止任何关键服务,并且计算机永远不会重新启动。不要停止autoruns的服务,使用服务管理器将类型更改为手动。如果你从未使用它们,许多sql服务也不需要运行它们。

其他一些提示

  • 将临时文件/和asp.net构建目录移动到其他磁盘
  • 删除临时目录(cd%temp%)
  • 中的所有文件

使用进程exporer确保可用物理内存不为零。如果它接近零,那么你的服务器需要内存,或者需要停止非运行程序。

要将多个站点放在同一个池下,您需要更改新共享池下站点的权限。它并不困难,只需要花一些时间并组织起来知道哪个站点在哪个池下运行。现在假设您有10个站点,最好使用2个不同的池,并根据每个站点的负载在这个池上扩展站点。

答案 1 :(得分:2)

Sitecore性能调整没有立竿见影的答案。但这里有一些重要提示:

1)CACHING

缓存就是一切。对于任何应用程序,默认的Sitecore缓存参数都很少正确。如果你有大量内存,你应该增加缓存大小:

http://learnsitecore.cmsuniverse.net/en/Developers/Articles/2009/07/CachingOverview.aspx

http://sitecorebasics.wordpress.com/2011/03/05/sitecore-caching/

http://blog.wojciech.org/?p=9

不幸的是,这是开发人员在部署安装时应该注意的事情,而不是系统管理员应该关心的事情......

2)DATABASE

数据库是最后检查的瓶颈。我很少接触数据库。但是,可以通过适当的设置来增加DB性能:

可提高性能的数据库属性:

http://www.theclientview.net/?p=162

关于索引碎片的这篇文章非常有帮助:

http://www.theclientview.net/?p=40

答案 2 :(得分:1)

不能代表Sitefinity,但会提供Sitecore的一些提示。

  • 尽可能使用Sitecores缓存,尤其是在XSLT上(因为它们往往比布局和子布局更简单,因此Sitecore缓存不会破坏它们,因为Sitecore缓存对asp.net回发有效),这个ofc只有在rederings&子布局等被访问了很多。使用/sitecore/admin/stats.aspx?site=website来检查未缓存的内容
  • 使用Sitecores分析器,打开分析器中的项目并查看哪些子布局等需要时间
  • 只使用XSLT作为最简单的内容,如果它变得复杂而且我会选择子布局(asp.net控件),这有点偏颇,因为我不喜欢XSLT,但经验表明。 ascx更快
  • 对静态文件使用IIS'内容过期(概述所有/ sitecore以及是否有一些图像,javascript和CSS文件)这适用于IIS 6:msdn link
  • 使用Sitecore Databasetest.aspx检查数据库访问时间(Sitecore 6的数据库访问时间比使用Sitecore 5& 6的简单版本要好得多)Sitecore SDN link

这就是我能从头脑中想到的。

答案 3 :(得分:1)

Sitecore有一个主要缺陷,它使用主键的GUID (以及其他选择不当的数据类型),这会从第一个插页中分割表格,如果你有使用频繁的Sitecore数据库,碎片在一小时内可能超过90%。这些不是一个设计良好的数据库,建议在解决其他问题之前查看其他产品,这会让我们遇到一个主要的性能问题(时间和金钱)。 我们处于停滞状态,我们无法再添加RAM无法更频繁地重建索引

答案 4 :(得分:0)

此外,将IIS设置为仅在特定时间每天一次回收app_pool。我经常把我的时间定在凌晨3点。这样应用程序永远不会进入睡眠状态,回收利用等。最好减少旋转时间。

另外将IIS配置为始终运行'而不是'starup'。这样,当应用程序重新启动时,它会立即重新编译,准备好咆哮。

Sitefinity真的是一个很棒的软件(希望我上面的提示得到赞许,而不是我对产品的认可)。哈哈