优化可能是我最喜欢的SharePoint主题之一– it seems there’始终是一种新的学习技巧,我喜欢这样的事实,即进行细微的调整会对您双色球推荐一注的运行状况产生巨大影响。现在有一些很棒的资源可以提供有关如何提高性能的信息,但令我惊讶的是’一篇论文或文章包含我个人在过去的项目中考虑过的或与我相关的所有方面。因此,本文本质上是其中一些来源的汇总。目的是’t for it to be “complete”(如果有这样的事情)或以任何方式具有权威性,我知道我不会’成为第一个在这个主题上写博客的人–这确实只是我要参考的提醒列表,但是如果有帮助的话,’s great.
关键资源:
- 如何优化SharePoint Server 2007 Web内容管理双色球推荐一注以提高性能
- 针对WAN环境优化Office 的SharePoint Server
- 的SharePoint Server 2007 Web内容管理双色球推荐一注的说明性指南
- 调整Web服务器性能(Office 的SharePoint Server)
- 许多博客文章/演讲者 交流电, 斯彭斯 和别的
- 史蒂夫·苏德’s (of Google) blog
在进入清单之前,请记住,根据您的情况,不同的优化措施将产生不同的效果-拥有世界上最好的清单实际上不能替代SharePoint架构师’识别能力 什么 可能是给定实现的瓶颈。另外,我的清单很“developer-focused”,但是如果实施的基础结构方面是限制因素(例如,Web服务器和SQL之间的延迟,可用的RAM数量等),则可以优化代码,直到您完成’脸色变蓝而又没有解决您的性能问题
我的列表分为几部分,其中一些项目具有指向一些有用资源的链接,或者如果您对本主题不熟悉,则可能对您有用。
组态
本节中的项目通常具有 a big impact –特别是输出缓存,例如,这是在WCM站点上要考虑的第一件事。
- 输出缓存 (要么 用户控制级别的声明式缓存)
- HTTP / IIS压缩,包括.aspx文件
- BLOB缓存
- 对象缓存 组态
- 网络配置正确吗 卡设置为千兆
- 搜索索引是否配置正确,例如考虑为索引,爬网频率/类型使用专用的WFE
- 由于HTTP 304s / BLOB缓存错误,将CSS / JS文件从样式库移出(移至另一个库或文件系统)
- 检查使用 提琴手/慢速 (稍后会有更多介绍)或类似的内容,用于意外的HTTP 304, 401, 404 codes
代码/开发
- 测试 SPDisposeCheck 确保没有内存泄漏
- 测量页面有效负载重量(同样, 慢速 在这里有用)–旨在尽可能减少
- 消除不必要的ViewState!一种好的开发技术可能是在web.config中关闭ViewState,然后在确实需要它的控件/页面中覆盖它(避难所’尝试过此操作,但请保留意思)。
- 确保不下载匿名用户的core.js等/通过身份验证的延迟加载.
- 确保图像尺寸小/图像针对网络进行了优化 (仍然出现!)
- 始终确保在图像上指定高度/宽度属性
- 确保 自定义CSS正确分解
- 唐’不要忘记客户端代码的效率,例如CSS,jQuery选择器
- 考虑使用代码分析工具,例如 ANTS分析器 要么 dotTrace to identify 次优 code
- 确保良好的编码习惯,例如如果您的代码编写不当,您的优化工作可能会被撤消。意外地在循环中执行不必要的处理(在服务器端或客户端代码中,我是一个示例’ve seen many times)
- 警惕自定义HTTP模块的性能影响–在启用/禁用此类模块的情况下运行负载测试时,我经常看到性能提高。删除core.js作为HTTP模块内的后处理步骤不是正确的方法! (不,我’ve seen it done..)
代码/开发– advanced
这些提示只有在您真正需要时才有必要’重新实施高流量双色球推荐一注,但值得考虑:
- 考虑将自定义JS / CSS分解为更少的文件–HTTP请求越少越好
- 考虑 “minifying” JS
- 考虑 使用CSS对背景图像进行聚类 (将所有图像拼接为一个,以减少HTTP请求)– 交流电 可能在某处提到了在线服务来使它自动化。
建筑
您应该考虑本节 绝对 不完整– hopefully there’在这里足以劝阻任何人相信它’只是关于代码!前两个特别重要。
- 64-bit/足够的可用RAM等
- Web和SQL之间的延迟–MS建议ping响应少于1毫秒
- 考虑CDN解决方案(例如 赤舞, Limelight 等),如果用户在地理位置上离服务器较远(并且您的客户端可以负担得起!)
- 确保不将Web Garden与BLOB缓存一起使用(已知的BLOB缓存问题)
- 是 应用程序池设置 正确–通过使用以下命令启用到Windows事件日志的日志记录来检查是否有过多的应用程序池回收: cscript adsutil.vbs设置w3svc / AppPools / <YourAppPoolName> / LogEventOnRecycle 255。每天一次或两次可能是您最多’re hoping for.
- 存储结构设计正确吗OS,数据,日志位于不同的磁盘轴上吗?
- 存储配置是否正确(例如SAN配置)– are your LUNS 给你足够的 IOPS?!
使用YSlow帮助优化双色球推荐一注
我们值得讨论的一种特殊工具’重新谈论优化双色球推荐一注是 慢速 – if you haven’还没有发现,这是一个扩展了Firefox的插件 萤火虫)由Yahoo!开发开发人员使用其优化规则集(可自定义)报告并帮助进一步简化您的双色球推荐一注。该工具专注于服务器和浏览器之间的通信–显然,这样的浏览器工具可以’不能识别任何后端问题,但是’通过检查运行站点总是很有趣的。
第一个标签页‘grade’基于规则集的双色球推荐一注,帮助您确定需要改进的地方(I’ve突出显示页面停止的位置,YSlow控制台以红色框开头):
下一个选项卡提供了按请求下载的文件的细分,并允许我查看它们的大小和标头等。特别是,我可以看到标记有文件的到期日期和Etag等,以便可以在本地缓存它们:
“统计信息”标签对页面的权重进行了很好的分析,还说明了首次访问和后续访问之间的区别,在这些访问中,将从浏览器缓存中提供适当标记的文件:
Finally the 净 tab in 萤火虫 也很有趣,因为这向我展示了文件的下载方式(顺序或并行)–最新的浏览器在此方面做得更好,IE8和FF3能够为每个URL域打开6个通道以并行下载文件,但请注意IE7只能打开2个。
由此,我也看到了 http://sharepoint.microsoft.com 双色球推荐一注(伟大的双色球推荐一注顺便说一句)我’一直在分析还显示 我最近讨论的BLOB缓存问题 (现在已确认是一个错误),其中错误的标头添加到了样式库中存储的文件中,从而导致大量不必要的HTTP 304通过网络传输。因此,YSlow确实提供了深刻的见解–但是我同意 杰夫·阿特伍德’s reminder 一些报道“issues”可能不是您的双色球推荐一注最担心的问题。一如既往,运用常识。
概要
优化是一个很深的话题,这个清单只是我提醒我要考虑的一些事情,尽管实际上要真正构建和开发高性能站点需要对基本要点有扎实的了解。诸如YSlow之类的工具也可以在某些方面进行优化。
那么,我错过了您考虑的哪些优化块?随时发表评论并添加到此列表中。
13条评论:
感谢伟大的文章!
很棒的文章!
添加到工具箱:
- I like Visual Round Trip Analyzer (VRTA) by Microsoft (depends on 净mon). It give a good overview of round trips and perf. (http://www.microsoft.com/downloads/details.aspx?FamilyID=119f3477-dced-41e3-a0e7-d8b5cae893a3&displaylang=en)
- neXpert plug-in for 提琴手 (http://www.fiddler2.com/fiddler2/addons/neXpert.asp)
您的帖子面向WCM双色球推荐一注,但是值得一提的是Kerberos作为协作双色球推荐一注的配置选项。
@尼古拉斯
很棒的提示,谢谢。我最近遇到了VRTA,它看起来非常有趣-在那里'与...有很多重叠'Net'标签中的Firebug(如上所示),但它可能会进一步增加价值,我没有't dig deep enough.
并且同意Kerberos-在这里不是专家,但是我知道当用户会话的长度相当长时,最大的性能提升将是获得。
再次感谢,
C。
很棒的清单克里斯,给我一些有关当前站点的考虑。
虽然有点long 乔尔'在AppPool设置上的撰写 我认为是一本好书,并在Technet文章上进行了扩展。
Also take a look 在 http://www.wssdemo.com/Pages/Measure%20SharePoint%20Performance.aspx
关于BlobCache的内部工作原理,这里有一篇非常详尽的文章:
http://sharepointinterface.com/2009/06/18/we-drift-deeper-into-the-sound-as-the-flush-comes/
克里斯,你好
您对双色球推荐一注公开时不需要通过导线发送哪些JavaScript和CSS文件一无所知吗?例如,core.js是265k。
I've分析了许多Sharepoint双色球推荐一注,并且前端性能非常差!它'找到一个双色球推荐一注,这并不罕见 '可提供11个单独的JS文件和几乎相同数量的CSS。可以轻松地将它们串联/缩小吗?
@取消,
如果你're using a custom master page/layout, I *think* you can 完成ly suppress core.js, core.css, init.js, and ie55up.js for anonymous users.
I'我很确定至少前三个是确定的,但是你'd需要对您的双色球推荐一注进行测试以确保-自动抓取工具将是最好的选择,以确保您'已经测试了您双色球推荐一注上使用的所有母版页/版式。
HTH,
克里斯。
我同意core.js,我看了一下它,它看起来与后端/管理界面/功能有关。我想我们'不过,必须保留core.css。
您是否知道任何地方都有文档解释每个.js和.css文件的用途? Sharepoint提供了很多服务,但我没有'想要通过电线发送任何不是'在公共站点上确实需要。
@取消,
是的,归根结底取决于您的双色球推荐一注设计-当然,当我've done it I'我知道双色球推荐一注的前端 绝对 不会使用任何SharePoint'例如CSS的类。
但是测试是唯一可以确定的方法。
怕我'我没有意识到每个文件上都有任何有用的文档,并且可以肯定的是,SharePoint 2007中CSS的实现是"sub-optimal".
HTH,
克里斯。
克里斯(Chris)最近在SPC09上,看到了一个称为WAX的共享点Web加速器-对此有何看法?
@匿名,
是的,我最近遇到了这个-它's the 充实 产品。我没有 '没看到它在起作用,但是我'我肯定留下了深刻的印象,微软将其用于 http://sharepoint.microsoft.com。据我所知,它可以自动执行清单中的某些(非SharePoint特定的)任务。因此,可能取决于财务决策是否'手动或自动执行更具成本效益。当然可以保证简化流程。
克里斯。
克里斯,你好
我已成功使用您的方法删除了所有不必要的js文件。问题是顶部菜单弹出菜单似乎需要ribbon.js和core.js。您能告诉我需要哪些js类,以便我可以使用script标记手动加载它们
发表评论