提升SharePoint性能的十个步骤
本文由美国计算机世界网站根据微软提供的技术手册改编,文中删除了促销信息,保留了微软提供的有效解决方法。
SharePoint是微软历史上销售量增长最快的产品,其可以存储大量的文件。这意味着应用性能是成功部署SharePoint的一个关键因素。我们在这里列出了能够提高SharePoint服务器性能的十个步骤。
步骤1:分离用户和数据库信息
一个常见的误区是与高速网络连接的服务器有着充足的带宽执行所有需要的操作。但是SharePoint在SQL设置了大量的请求———每个需求一个页面的请求会导致向数据库发送大量的请求,更不要说服务、检索和其它操作了。
为了缓解用户与数据库信息间的冲突,前端服务器和SQL连接应当被分离,让它们分别通过独立的物理网络或虚拟LAN。这需要在每一个前端Web服务器上至少配置两个独立的网络接口卡,通过设置静态路由确保信息被路由至正确的接口卡。相同的设置或许也能够被应用至应用索引服务器。
步骤2:分离检索
一个典型的中型服务器群由一台或多台Web前端服务器、一台专用索引或应用服务器和一台独立的SQL数据库服务器。由索引服务器发起的搜索信息必须由负责传递用户内容的相同服务器处理。为了防止搜索和用户信息冲突,额外的服务器或许应当被添加至服务器群中,这台服务器只用来服务搜索查询(在更小的环境中,索引服务器或许应当具备这一功能)。服务器群管理员应当对搜索服务进行配置以仅在这台专用户服务器上执行收集功能。在搜索操作中,这一配置可能会减少Web前端服务器信息70%。
步骤 3:调整 SQL参数
一个避免麻烦的便捷方法是在独立的物理磁盘(或是逻辑单元符号)上设置一个大型SharePoint数据库。这意味着有一套搜索数据库磁盘,一套临时数据库磁盘和内容数据库磁盘。还需要对独立的日志文件(*.ldf)进行额外考虑。尽管这些不会此发与其它文件相同级别的I/O,它们在备份和恢复中扮演了一个主要的角色,它们会让主数据库文件大小翻上数倍。
另一个方法是前摄性的管理单个数据库的尺寸和增长。默认状态下,SQL会让数据库文件以很小的规模递增,大约以每次1MB或是以数据库大小的固定百分比为限(通常是10%)。这些设置导致SQL在反复的造成数据库浪费,在数据库增大的同时妨碍了其它数据的写入。一个备选方案是如果空间足够大可以重新将数据库设置为推荐的最大值(100GB),将自动增长设置为一个固定值(如10MB或20MB)
步骤4:整理数据库索引碎片
SQL服务器维持对存储在多个数据库中数据的索引,以改善查询效率和读取操作。就像文件存储在硬盘中一样,这些索引也会碎片化。定期进行维护操作十分重要。由于这种维护属于资源密集性操作,因此在定期执行这类操作时应当特别注意,许多时候,会影响到数据写入或读取。
步骤5:在多内容数据库分散用户数据
大多数SharePoint数据被存储在列表中:任务、通知、文件库、问题、图片库等等。大量的这种数据实际上被存储在与站点集合相联系的内容数据库的单一表单上。这与在SharePoint层内有多少站点和子站点被创建没有关系,每一个站点集合仅与一个内容数据库相联。这意味着一个带有数千个子站点的站点集合存储了大量的用户数据。这些用户数据来自于SQL单一表单上的每一个站点所存储的每一份列表。
由于SQL必须在一个潜在的非常庞大的数据组中递归执行查询,这会导致延时。减少工作负载的一个办法是让站点集合映射至内容数据库。
步骤6:缩小页面尺寸
对于通过LAN与入口相联的SharePoint用户来说,管理内容和寻找资源很容易,但是对于通过低速WAN的远程用户来说,带有大量元素的SharePoint页面是一个性能杀手。
如果你有许多远程用户,你需要启动一个小型母版页,就像字面意思一样,去除不需要的元素,允许设计者启动一个只包含有基本功能的干净的页面。
其次,大多数SharePoint页面都包含了支持文件链接,包括JavaScript、样式表,这些都需要额外的时间进行检索和执行。
步骤7:配置IIS压缩
SharePoint内容由两个主要来源组成———在SharePoint根目录下存储的静态文件(C:\ProgramFiles\CommonFiles\MicrosoftShared 2007版为\12和2010版为\14)和存储在内容中的动态数据。在运行时,SharePoint从这两个来源中合并页面,然后将它们传输至内一个HTTP上以响应请求者。互联网信息服务器(IIS)版本6和7都包含了多种机制,可在将页面传输至网络上之前减少HTTP响应的有效负载。调整这些设置能够减少传输给客户的数据大小,缩短载入时间,加快网页渲染。
IIS压缩设置可能通过将基础值0(不压缩)修改为最大值10(充分压缩)。这一设置的调整决定着IIS执行压缩算法的程度。
步骤8:利用缓存
用户请求的多数内容都能够被缓存在内存上,包括表单项目、文件、查询结果等等。站点管理员能够配置他们自己的缓存文件以满足不同的用户需求。比如,匿名用户能够被指定一套缓存策略,授权用户能够被指定另一套策略,与普通读者相比,内容编辑可以浏览最新的内容变化。通过页面类型也可以配置缓存文件,所以公布页面和布局页面表现是不同的,管理员有权选择详细设定服务器和客户端上的缓存策略
步骤9:管理页面定制
SharePointDesigner是一个对管理员和高级用户极为有用的工具,但是页面定制将妨碍总体性能。当进行定制时,整个页面内容,包括标记和内联代码都会被存储在数据库内容,每当页面被请求时都必须被取回。虽然对逐页母板页影响不大,但是在有着数百甚至数千页面时,这种对数据库反复读取将严重影响到性能。
为了防止这一问题,管理员应当执行一个限制页面定制,只有当绝对需要时才可以进行定制的规定。
步骤10:限制导航深度
所有门户网站的一个最重要设计元素是在每个网页的顶部都设置了全局下拉弹出式菜单。这看起来是一个导航的便捷方法,但是这个设计过深,在最初的几级菜单彻底失去之前导航功能已经变得极为混乱了。更为糟糕的是,读取所有的数据以填充导航菜单在分级很深的网站上极为占用资源。
SharePoint设计者可以通过修改母版页内容的导航控制参数来定制每个导航菜单的深度和级别。管理员应当将导航深度限制在一个可控级别之内,以防止影响性能。