如何提高Sharepoint 2007的性能?最佳方法是什么?

4

好的,我们现在陷入了困境,非常希望能得到SO社区的反馈。

我们的基本问题是MOSS基础架构下的内部网站性能缓慢--

一些环境信息:

我们拥有一个用于协作的MOSS标准版网站。

  • sitedb大小为29 Gb
  • 我们有两个基于VMware的前端服务器。(每个服务器都有2个32位CPU)
  • 少于1000个用户分布在所有时区
  • 我们有一个大的站点集合和子站点。

一般症状:加载主页和已经“预热”的页面相当迅速,但是偏离主流路径的页面/站点加载非常缓慢。

我们看到有时页面突然需要30秒才能加载完成,而正常情况下只需要2秒。

我们已经采取的措施如下:

  • 大大减少了爬行量
  • 启用了对象和BLOB缓存
  • 优化了VMware设置
  • 遵循Microsoft IT白皮书上的MOSS sharepoint最佳实践(特别是列表大小等)

我不知道还能做什么——将其分成多个站点集合?

切换到64位前端服务器?

非常希望能听到其他类似情况的人的经验分享。

9个回答

3

您没有说明前端服务器有多少内存 - 鉴于它们是32位的,我将假定每个工作进程的最大内存约为2GB+。

我的建议?切换到64位,增加更多的内存,并检查您是否仅在每个前端使用一个w3wp工作进程。深入研究“Web Gardens”,也就是配置多个w3wp进程的前端。首先,每个前端使用两个workerprocesses,看看效果如何。还要确保它们设置了回收,并且每对工作进程的回收不重叠 - 有两个或以上的工作者意味着他们可以轮流回收而不会中断访问。

这只是我的建议。

-Oisin


前端服务器都有4GB的RAM。曾经考虑过使用Web Gardens,但我认为微软不建议使用它们。例如,在这篇文章中,MSDN提到了这一点: http://blogs.msdn.com/joelo/archive/2007/10/29/sharepoint-app-pool-settings.aspx - Peter Gibbons
公平地说,Joel是个牛人。但是他稍微扩展了一下。如果你有多个CPU(你确实有),Web花园可能会有所帮助;如果你往下读一点,他说“尝试2个,如果你没有获得超过15%的提升,就忘了它”,或类似的话。我猜你的数据库没有虚拟化.. ;) - x0n
拆分为多个网站集合也可能有所帮助 - 但根据您的设置情况,有时执行此操作可能很痛苦。我认为 MS 的建议是每个内容数据库20GB,如果我没记错的话... - x0n
不要使用Web gardens---Web gardens是由多个工作进程支持的Internet Information Services(IIS)应用程序池。我们建议您不要在企业内容管理站点中使用Web gardens。这是因为Web gardens对页面输出缓存产生负面影响。 http://technet.microsoft.com/en-us/library/cc298550%28office.12%29.aspx - Chris Ballance

2
我认为你的首要任务是确定问题出在哪里 - 在你确定问题之前,改变任何东西都是浪费时间。
  • 数据库服务器是否在单独的服务器上还是在您的 Web 服务器之一上?

  • 您是否在前端或数据库服务器上看到 CPU/磁盘瓶颈?

  • 听起来您是全球性的;您是否从接近服务器的网络中看到相同的性能问题 - 这是否是 WAN 问题?


2
感谢各位提供的有用建议,我刚刚了解到一个问题,那就是我们的对象缓存基本上没有起到作用!这是因为它似乎是这样工作的:如果您在站点集合的任何位置都有编辑权限,则默认情况下会禁用整个门户网站的对象缓存。由于所有用户至少都有某些权限,这意味着缓存基本上没有起到作用!
通过启用缓存调试,我们发现了这一点,它会在HTML中放置一个小注释,说明正在使用哪个缓存。在身份验证缓存配置文件中更改“允许撰写者查看缓存内容”的设置后,
我们正在观察编辑者的反馈,但对于普通观众,有传言称它产生了很大的影响!

2

是的,缓存是减轻系统负载的最佳方法。为 SQL 服务器添加 RAM 也很好。(64 位对于 SQL 服务器来说真的是必须的,WFE 不太重要)。

不确定您是否想要回收进程。我没有证据支持这一点,只是和某人交谈时得知回收进程似乎解决了一个性能问题,但引入了其他问题。

我提到过缓存吗?

SQL 服务器应该处理高达 100GB 的数据库,但在这种大小下,备份等方面将很难管理,因此将您的站点分成相关的站点集可能是您现在需要计划的事情,但这可能与性能无关。


1

0

我运行的设置非常相似,但是我们有超过400GB分布在3个站点集合中。在走向64位路径之前,还有一些其他尝试的方法。

  • 确保数据库服务器和Web前端之间没有磁盘或带宽问题。到数据库服务器的网络速度非常关键。
  • 检查数据库服务器本身,如果磁盘在SAN上,则可能存在性能问题,如果争用SAN上的物理驱动器。RAM也很重要,它可以将更多内容缓存到内存中,从而减少等待磁盘响应的时间。
  • 安排爬行作业在正常营业时间之外运行
  • 您已启用对象缓存,这可以大有帮助,请确保启用了压缩!对于带宽较低的用户,SharePoint向用户发送大量CSS信息,如果启用了压缩,则可以将其压缩到原来的1/10大小。
  • 还有一个重要的问题是,请确保公司的DNS在其他位置正常工作,并查看此问题是否与外部来源有关。例如,我们有一个SonicWall防火墙,对于通过它连接的办公室的任何事情,响应时间都很慢。
  • Microsoft有一份关于性能计数器监视的白皮书。它非常详尽,可以帮助您缩小CPU / RAM /网络/ HD IO之间的问题范围。

希望这可以帮助!


0

我建议也采用64位。也许不是立即解决问题的方法,但从长远来看,我会把转向64位作为整个系统的目标。

我对Nat的评论也有些异议,认为这在Web前端并不重要。我不会争论基准测试或争论内存可寻址性。事实上比这更简单。

微软已经公开表示,2007年是SharePoint最后一个可以在32位服务器上运行的版本。未来将需要64位 - 就像FRAM油滤器的广告语一样 - “现在付款还是以后付款”...


0

一定要检查磁盘使用情况。如果您有两个虚拟机并且它们运行在同一个磁盘/ SAN 上,请确保它没有过于繁忙。过载的 SAN 会影响性能。


0

我们也遇到了性能问题。我们升级到Win 2008 64位,这带来了一些变化,但并不如预期的那么多。

从NTLM认证转换为Kerberos给我们带来了很大的提升。这是我们最主要的改进。

希望对某些人有所帮助。


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