估计 SharePoint Server 2010 中的 Web 内容管理的性能和容量要求
适用于: SharePoint Server 2010
上一次修改主题: 2016-11-30
本文包含有关容量管理的指导,该容量管理与启用了“发布基础架构”的 Microsoft SharePoint Server 2010 网站有关。本文档特定于 SharePoint Server 2010,其中讨论的信息不适用于 SharePoint Foundation。
本文讨论以下方案:
Internet 发布网站 - 企业展示网站。
这种网站发布到 Internet 上,并允许匿名 Internet 用户查找企业相关信息。网站(例如设立品牌的那些网站)和内容受到严格控制。
Intranet 发布网站 - Internal 新闻网站。
这种网站在组织内进行内部发布。其主要用途是在组织内与经身份验证的用户共享信息。网站中的信息可能会受到严格管理,而某些领域的管理可能较松。
企业 Wiki - 知识存储库。
企业 Wiki 是一个单服务器场网站,当参与者创建新页面并将其链接到可能存在(也可能不存在)的其他页面时,该网站会逐渐增长。企业 Wiki 通常在组织内进行内部发布。利用该网站,整个公司或组织的人员可以使用集成到 SharePoint 环境中并由该环境增强的解决方案来捕获和共享知识。
在阅读本文档之后,您会了解以下概念:
应最大化以支持大量读取操作的关键指标(吞吐量)。
与 Web 内容管理 SharePoint Server 2010 部署有关的各种潜在瓶颈。
最大吞吐量时输出缓存的重要性。
写入操作对最终用户读取体验的影响。
本文内容:
先决条件信息
测试详细信息和方法
Web 内容管理部署
优化内容
测试结果和建议
关于作者
先决条件信息
在阅读本文档之前,请确保您了解 SharePoint Server 2010 容量管理背后的关键概念。以下文档将帮助您了解建议采用的容量管理方法,并提供相关上下文以帮助您了解如何有效使用本文档中的信息。
有关可能有助于您了解本文档中数据上下文的性能和容量的更多概念信息,请参阅以下文档:
测试详细信息和方法
在每项测试中,均已提取可能会显示在实际环境中的变量来显示特定建议。因此,请务必在自己的环境中进行测试和监视,以确保为满足预期的请求量而进行了正确扩展。若要了解有关容量管理概念的详细信息,请参阅 SharePoint Server 2010 的容量管理和调整大小概述。
本文讨论有关网站集功能、SharePoint Server 发布基础架构和输出缓存的性能。这些功能仅在启用 SharePoint Server 发布基础架构后才可用。默认情况下,发布门户已启用此功能。
数据集
进行测试时使用的是与实际 Web 内容管理部署共享常见特性的数据集。虽然负载是恒定的,但可请求不同页面。下表介绍用于这些测试的数据集。
数据集
对象 | 发布网站 |
---|---|
内容数据库大小 |
2.63 GB |
内容数据库数量 |
1 |
网站集数量 |
1 |
Web 应用程序数量 |
1 |
网站数量 |
50 |
还原为网页数量 |
20,000 页,分为 20 个文件夹,每个文件夹包含 1,000 页 |
页面构成 |
基本 HTML 形式的文章页以及对两个图像的引用 |
页面大小 |
42 KB(未压缩);12 KB(已压缩) |
图像 |
3,000 个,每个大小介于 30 KB 至 1.3 MB 之间 |
建议配置 Internet Information Services (IIS) 以始终压缩文件,而不是配置默认设置以动态压缩文件。在启用动态压缩时,IIS 会压缩页面,直至 CPU 使用率超出特定阈值,此时 IIS 会停止压缩页面,直至使用率降到阈值之下。本文中的测试在执行过程中将始终启用压缩功能。
该测试数据集仅使用产品随附的默认 SharePoint Server 2010 功能。除了这些基本功能外,您的网站可能还包括自定义设置。因此,请务必测试您自己的解决方案的性能。
硬件
服务器场中的 Web 服务器数量因测试而异。但每台服务器均包含相同的硬件。下表介绍在这些测试过程中使用的 Web 服务器和应用程序服务器的硬件。
应用程序服务器和 Web 服务器的硬件规范
Web 服务器 | |
---|---|
处理器 |
两个四核,2.33 GHz |
RAM |
8 GB |
操作系统 |
Windows Server 2008,64 位 |
SharePoint 驱动器的大小 |
300 GB |
网络适配器数量 |
2 |
网络适配器速度 |
1 GB |
身份验证 |
Windows 基本身份验证 |
负载平衡器类型 |
硬件负载平衡 |
软件版本 |
SharePoint Server 2010(预发布版本) |
本地运行的服务 |
管理中心 Microsoft SharePoint Foundation 传入电子邮件 Microsoft SharePoint Foundation Web 应用程序 Microsoft SharePoint Foundation 工作流定时服务 |
下表介绍在这些测试过程中使用的数据库服务器硬件。
数据库服务器的硬件规范
数据库服务器 | |
---|---|
处理器 |
四个四核,3.19 GHz |
RAM |
16 GB |
操作系统 |
Windows Server 2008,64 位 |
存储 |
15 个 300 GB 的磁盘,转速为 15,000 RPM |
网络适配器数量 |
2 |
网络适配器速度 |
1 GB |
身份验证 |
NTLM |
软件版本 |
Microsoft SQL Server 2008 |
术语表
在本文档中,您会遇到一些专业术语。此处列出了一些关键术语及其定义:
RPS 每秒请求数。服务器场或服务器在一秒钟内收到的请求数。此术语是用于服务器和服务器场负载的常用计量单位。
请注意,请求与页面加载不同;每个页面都包含多个组件,每个组件都可在加载页面时创建一个或多个请求。因此,一个页面加载可创建多个请求。通常,身份验证检查和事件是使用不重要的资源,因此不会将其计入 RPS 测量中。
绿色区域 服务器可以维持以下一组条件时所处的状态:
至少 75% 的请求的服务器端延迟低于 1 秒。
所有服务器的 CPU 使用率均不到 50%。
失败率低于 0.01%。
Web 内容管理部署
在 SharePoint 发布网站中创作内容所使用的模型有两种,它们会影响服务器场拓扑的选择。
在就地创作模型中,作者和访问者共享一个网站集。作者可以随时创建和更新内容,这使得整个给定日期内读写操作的分发处于变化中。在此服务器场中,通常有大量读取操作和适度的写入操作。
下图从拓扑角度显示就地创作的工作原理。
在内容部署模型中,多个网站集以独占方式单独支持内容创作和发布。作者在创作环境中创建和更新内容,然后按计划将内容部署到发布环境,以供访问者阅读。除了从创作环境部署内容以外,发布环境主要提供读取请求服务。与就地创作模型不同,可以按预定时间间隔对通过内容部署施加的服务器负载进行调整。
下图从拓扑角度显示内容部署的工作原理。
这些内容创作模型相互排斥。
虽然 Internet 发布网站和 Intranet 发布网站既可以使用就地创作模型,也可以使用内容部署模型,但企业 Wiki 最适用于就地创作模型。与读取操作相比,企业 Wiki 通常会遇到更大的写入操作量,因为大部份用户都可以编辑页面。企业 Wiki 页面与发布文章的页面不同,并表现出不同的性能特征。
优化内容
本节讨论有关优化 Web 内容管理环境的信息。优化环境包括了解如何管理吞吐量、瓶颈和缓存。
本节内容:
吞吐量是关键指标
瓶颈和补救措施
缓存帮助
吞吐量是关键指标
在对 SharePoint Server 2010 Web 内容管理部署进行容量规划时,吞吐量和响应时间是要优化的最重要指标。吞吐量是服务器场每秒可执行的操作数,以每秒请求数 (RPS) 为单位。
瓶颈和补救措施
瓶颈是指在用完时会阻止服务器场提供更多请求服务的系统资源。下图显示了服务器场元素以及会成为瓶颈且应进行监视的资源。
Web 服务器的 CPU 使用率
Web 服务器的 CPU 将成为经过优化的拓扑的瓶颈,因为它是可轻松扩展的组件。负载平衡器可在 Web 服务器之间传送请求,并确保单台服务器的使用率不会显著超过其对等服务器的使用率。
虽然在充分使用 Web 服务器的 CPU 使用率后,其他用户可以访问网站,但这些用户遇到的服务器响应时间会延长。此行为有助于管理请求量高峰。但是,超过服务器场容量的持续负载最终会导致请求积压,即请求量大大超过等待请求阈值。此时,Web 服务器会限制请求,并发出 HTTP 错误 503 响应。在下图中,当达到等待请求阈值后,服务器响应时间缩短,因为只提供 HTTP 错误。
该图显示了以下变化:
响应时间随着 Web 服务器 CPU 使用率接近 100% 而逐步增加。
在超过等待请求阈值后,提出更多请求时会出现错误。
其他瓶颈
如果 Web 服务器 CPU 不是瓶颈,则随后要调查的瓶颈项目是场拓扑、场配置或提供的页面内容。这些元素中包括以下一些潜在瓶颈:
网络 在高吞吐量情况下,Web 服务器和数据库服务器之间的网络,或者 Web 服务器和最终用户之间的网络可能会出现饱和情况。为避免出现此情况,建议 Web 服务器使用双 gigabit 网络适配器。
数据库服务器的 CPU 如果数据库服务器的 CPU 成为瓶颈,则向服务器场中添加 Web 服务器不能增加服务器场支持的最大吞吐量。数据库 CPU 瓶颈(而非 Web 服务器 CPU 瓶颈)可反映两种情况:
缓存设置不佳或网页速度极慢,特别是非输出缓存的资源。此类情况具有的特征是:较高的数据库服务器 CPU 使用率,较低或适中的吞吐量,以及较低或适中的 Web 服务器使用率。
数据库服务器可能已达到服务器场所需吞吐量的容量。此类情况具有的特征是:高 Web 服务器 CPU 使用率,高数据库服务器 CPU 使用率以及高吞吐量。
缓存帮助
SharePoint Server 2010 使用了三种类型的缓存。这些缓存的共同目标是通过减少对数据库中经常请求的数据的调用来提高效率。对页面的后续请求可通过 Web 服务器上的缓存来满足,这样可显著降低 Web 服务器和数据库服务器上的资源使用率。
这三种类型的缓存如下所示:
输出缓存 该缓存将请求的页面内容存储在 Web 服务器内存中。有关输出缓存的详细信息,请参阅输出缓存和缓存配置文件 (https://go.microsoft.com/fwlink/?linkid=121543&clcid=0x804)。
对象缓存 该缓存将 SharePoint 对象(例如 Web 和列表项元数据)存储在 Web 服务器内存中。有关对象缓存的详细信息,请参阅对象缓存 (https://go.microsoft.com/fwlink/?linkid=123948&clcid=0x804)。
用于二进制大型对象 (BLOB) 的基于磁盘的缓存 该缓存将图像、音频和视频文件,以及其他大型二进制文件存储在磁盘上。有关 BLOB 缓存的详细信息,请参阅用于二进制大型对象的基于磁盘的缓存 (https://go.microsoft.com/fwlink/?linkid=123947&clcid=0x804)。
上述各缓存对维持高吞吐量至关重要。但是,输出缓存的影响最大,本文将对此进行详细讨论。
测试结果和建议
本节讨论经过测试的一些特殊领域,并提供根据这些测试归纳的建议。
本节内容:
启用输出缓存的影响
匿名用户和经身份验证的用户
读写操作的扩展特性
输出缓存说明
读取量对 CPU 和响应时间的影响
写入操作对吞吐量的影响
内容部署的影响
数据库快照在内容部署导出期间的影响
内容特性
启用输出缓存的影响
输出缓存是用于优化 SharePoint Server 2010 解决方案以提供大量读取操作的重要功能。
在这些测试中,为确定最大 RPS 值,增加了在服务器场上发出请求的活动用户数,直至数据库服务器或 Web 服务器的 CPU 使用率达到 100%,成为瓶颈。在进行测试时,使用 1x1(1 台 Web 服务器和 1 台数据库服务器)、2x1、4x1 和 8x1 的场拓扑来演示以不同输出缓存命中率扩展 Web 服务器的影响。
输出缓存命中率
输出缓存命中率是输出缓存命中与未命中的比率。
当缓存收到对已存储在该缓存中的对象数据的请求时,则表示缓存命中。
当收到对象数据未存储在该缓存中的请求时,则表示缓存未命中。在发生缓存未命中情形时,缓存会尝试存储请求的对象数据,以使对该数据的后续请求实现缓存命中。
页面请求可能导致缓存未命中的原因有多种。
配置的页面不使用输出缓存。
个性化页面,例如,其中数据特定于当前用户的页面。
首次按输出缓存变体项进行浏览。
缓存内容过期后的首次浏览。
下图显示了输出缓存对包含 1-4 台 Web 服务器和 1 台数据库服务器的服务器场的峰值吞吐量的影响。
备注
现已推断出在输出缓存命中率为 100% 的 4x1 服务器场上的最大 RPS 数据点,但不能实际观察到。此服务器场的请求量已达到网络带宽限制;即,数据传输率接近每秒 1 GB。在所有案例中,Web 服务器的 CPU 使用率为 100%。
下表列出了输出缓存命中率对包含 1-4 台 Web 服务器和 1 台数据库服务器的场拓扑的影响。
输出缓存命中率对不同场拓扑的影响
输出缓存命中率 | 度量值 | 1x1 | 2x1 | 4x1 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
100% |
|
|
|
|
||||||||
95% |
|
|
|
|
||||||||
90% |
|
|
|
|
||||||||
50% |
|
|
|
|
||||||||
0% |
|
|
|
|
有关启用输出缓存的影响的结论和建议
较高的输出缓存命中率会使最大 RPS 值显著增加。因此,建议启用输出缓存以优化 SharePoint Server 2010 发布解决方案。您可以在网站集的“输出缓存设置”页面上配置输出缓存。有关详细信息,请参阅 Office.Microsoft.com 网站上的配置网站集的页面输出缓存设置 (https://go.microsoft.com/fwlink/?linkid=205058&clcid=0x804)。
在启用输出缓存的测试中,会排除缓存页面的第一个请求;即,已有一定百分比的页面存储在缓存中。当用户首次请求未缓存的页面时,系统会将该页面添加到缓存中。如果缓存容量已用完或快要用完,缓存会削减非最近请求的数据。
0% 的缓存命中率模拟了某环境中在刷新已启用的输出缓存后对其进行填充的瞬间。例如,在应用程序池再循环时,每天在实际环境中观察到的瞬间。请务必适当扩展硬件以适应应用程序池再循环与下一次页面请求、缓存之间瞬间出现 0% 的缓存命中率的情况。0% 的缓存命中率还模拟了未启用输出缓存的环境。
匿名用户和经身份验证的用户
上面的测试假设对网站的所有请求均由匿名读者发出。但是,在您的网站中,可能需要对某些或全部用户进行身份验证。例如,经身份验证的读取方案包括公司的 Intranet 发布网站和 Internet 网站上的成员独享内容。
借助输出缓存配置文件,可以指定经身份验证的用户的输出缓存行为,该行为与匿名用户的行为不同。
缓存配置文件
缓存配置文件聚合了可应用于页面、页面项、内容类型和网站部署中规模级别的设置。缓存配置文件定义以下类型的缓存行为:
项目应在缓存中保留多长时间。
安全修整策略。
设置的有效期限,例如持续时间和更改时间。
缓存内容的变体,例如,基于用户许可、用户权限的变体和其他自定义变量。
对缓存配置文件的任何更改都会立即影响网站上的所有适用内容。可以为匿名用户和经身份验证的用户设置不同的缓存配置文件。
对于匿名用户,可以使用公共 Internet(完全匿名)输出缓存配置文件,对于经身份验证的用户,可以使用 Extranet(已发布的网站)输出缓存配置文件。
下图显示了已验证的吞吐量对数据库服务器 CPU 使用率的影响。
该身份验证模型是 Windows 基本身份验证。虽然不建议对 Internet 网站使用 Windows 基本身份验证,但选择此身份验证方法是为了演示身份验证产生的最低开销。此开销的大小因特定身份验证机制的不同而有所不同。在测试部署时,请确保说明身份验证机制的影响。有关 SharePoint Server 2010 支持的身份验证机制的详细信息,请参阅规划身份验证方法 (SharePoint Server 2010)。
有关匿名用户和经身份验证的用户的结论和建议
对于经身份验证的用户,其 RPS 较低,并且扩展潜能较小,因为验证凭据的额外工作加重了数据库服务器的负载。如测试结果所示,在用户进行身份验证时所观察到的最大 RPS 明显低于匿名访问服务器场的最大 RPS。
读写操作的扩展特性
为记录每小时写入次数,我们构建了测试。在本文中,将写入定义为创建和签入新发布页面,或编辑和签入现有发布页面。
在随后的测试中,将向系统中添加读者,直至 Web 服务器 CPU 使用率达到大约 80-90%,然后通过人为延迟在此环境中执行写入操作。该测试的每小时写入总次数约为 500 次。我们对所有测试均采用 90% 的输出缓存命中率并对 1x1、2x1 和 4x1 服务器场执行了相同的测试,并观察了 Web 服务器和 SQL Server 的 CPU 使用率,以及各种配置的总体读取吞吐量。此外,我们还测试了作为基准的匿名只读配置,还使用 Windows 基本身份验证测试了经身份验证的读者的配置。
虽然在只读扩展测试过程中,以 100% 的使用率完全用完了 Web 服务器的 CPU 资源,但在包含写入操作的扩展测试中,我们将 Web 服务器 CPU 使用率保持在 80-90% 之间。这样,便可在执行写入活动时为更多 CPU 使用率留出空间。
下图显示了在每个测试过程中观察到的总读取 RPS。在添加了更多 Web 服务器后,读取 RPS 成直线式增加,即使包含写入活动也是如此。但是,在加入写入活动后,RPS 会减少。
数据库服务器的 CPU 使用率随 Web 服务器数量的增加而增加。下图显示了 SQL Server CPU 使用率在各种配置中的增长模式。正如在本文前面的匿名用户和经身份验证的用户一节所观察到的一样,身份验证会影响数据库服务器的 CPU 使用率,在添加写入活动后,对该使用率的影响会更为严重(也会影响数据库服务器的 CPU 使用率)。
推断出的 SQL Server 使用率趋势表明 SQL Server 在使用六台验证读取请求的 Web 服务器时将成为瓶颈。但是,在匿名读取案例中,增加 Web 服务器的数量是可行的。
请务必注意典型部署中影响数据库服务器负载的其他因素,这些因素有助于在进行容量规划时提供相关说明。若要了解有关如何确定典型数据库服务器 CPU 使用率的绿色区域的详细信息,请参阅 SharePoint Server 2010 的容量管理和调整大小概述。
有关读写操作的扩展特性的结论和建议
数据显示,如果数据库服务器不会成为瓶颈,那么增加 Web 服务器数量是提高吞吐量的有效策略。与匿名读取/零写入测试组合相比,匿名读取/经身份验证的写入这一测试组合的 Web 服务器 CPU 使用率平均增长了 52%。此外,经身份验证的读取又会显著增加 SQL Server 负载,因为每个请求都会导致进行额外的身份验证检查,从而要求往返 SQL Server。
下图显示了吞吐量对数据库服务器 CPU 使用率的影响。
输出缓存说明
如果容量规划中的唯一问题是最大化 RPS,则以下测试建议最佳缓存命中率为 100%。但是,鉴于数据刷新要求或内存限制,对任意或全部页面启用输出缓存可能不可行或不理想。
数据刷新
输出缓存中提供的数据可能不包含对原始内容做出的最新更新。在内容部署源或(对于经身份验证的作者)在生产服务器场上创作的方案中,作者可能需要在更新现有内容后立即查看最新更改。
通常,通过在缓存配置文件中设置“持续时间”属性来简化刷新操作,此设置可指定缓存页面过期前保留在输出缓存中的时间。当某页面过期时,系统会从缓存中删除该页面,而随后的请求会导致缓存未命中,从而刷新该页面内容。
还可以设置“检查更改”缓存配置文件属性,以便服务器比较缓存页面的时间和最后一次在网站集中修改内容的时间。时间戳不一致的页面请求会使网站集中所有页面的缓存无效。由于“检查更改”属性会影响网站集中的所有页面,因此建议仅在存在很少更新且基本处于静态的经身份验证的就地创作解决方案时才启用该选项。如果在使用较长的持续时间时结合使用此选项,则可在对网站进行更新之前从缓存中提供所有页面。
默认情况下,“检查更改”属性未启用。这表示在响应未过期的页面请求时,不管是否修改了基础的原始 ASPX 页面,Web 服务器都从输出缓存中提供数据。
除了“检查更改”属性以外,在 1x1 服务器场上执行的本测试中的所有变量均与读写操作的扩展特性一节的测试中的变量相同。在打开“检查更改”属性时,缓存刷新更频繁,从而导致输出缓存命中率较低。
下图显示了“检查更改”属性对吞吐量的影响。
建议除了在特殊情况下以外,不要使用“检查更改”输出缓存配置文件属性。使用就地创作模型且很少更改内容的网站可能会受益于适用于经身份验证的用户的这一设置以及较长的缓存持续时间,但对于其他类型的网站,极有可能使 RPS 降低。
根据要求,您可能希望对时间敏感的内容即刻生效,或者生效速度超过默认设置允许的速度。在此情况下,应该缩短持续时间,或不启用输出缓存。
有关输出缓存说明的结论和建议
输出缓存不能解决与容量管理相关的所有问题。在某些情况下,输出缓存并不适用,在启用输出缓存和配置输出缓存配置文件时,应该考虑这些情况。
读取量对 CPU 和响应时间的影响
本测试是在启用匿名访问和输出缓存的 1x1 服务器场上执行的。
下图显示了读取量对 CPU 和响应时间的影响。
有关读取量对 CPU 和响应时间的影响的结论和建议
正如在瓶颈和补救措施一节中所讨论的一样,在 Web 服务器收到足够多的请求量,以致完全用光其 CPU 资源之前,服务器响应时间通常保持恒定。在完全用光 Web 服务器 CPU 资源时,响应时间会显著增加。但是,服务器场仍可以处理其他一些请求量。
写入操作对吞吐量的影响
在这些测试过程中,使创建操作与编辑操作按比例均匀分配。每小时写入次数值经测试高达约 500 次,因为每小时创建或编辑 500 多个页面超出了大多数 SharePoint 部署的运行范围。此类测试不涉及自动化流程(例如内容部署),将在内容部署的影响一节讨论内容部署。这些创建和编辑操作可能会导致多台 SQL Server 运行。因此,请务必注意,这些测试中测量的写入操作不是 SQL Server 级别的操作,而是表示用户将其视为写入操作。所有 RPS 测试和每小时写入次数测试均在 1x1 服务器场上执行。
在 Web 服务器 CPU 使用率达到 60-80% 之前,我们先在测试中添加了读取操作以便为流量高峰留出缓冲区,我们在整个测试过程中始终保持此平均使用率水平。然后,我们通过人为延迟引入写入操作,以便控制写入操作的数量。但是,在发生写入活动时,也曾出现 Web 服务器和 SQL Server 的 CPU 使用率增加的高峰。如下图所示,尽管平均值在普通操作范围内,但对于某些缓存命中率来说,其中某些高峰值还是超出了普通操作阈值。
如上图所示,在该环境中添加写入操作后,吞吐量略有降低。该图展示了每小时大约添加 500 次写入操作时只读方案与读取操作之间的吞吐量变化。该图针对每个输出缓存命中率均记录了两个数据点。因此,两个数据点之间的关系不一定是线性关系。
如下图所示,缓存命中率越低,百分比值降得越多。总之,读取 RPS 在很大程度上取决于缓存命中率,而与写入操作无关。
下图展示了在系统中添加写入操作时,数据库服务器 CPU 使用率并未有所增长。请注意,垂直扩展幅度为 CPU 容量的 0% 到 10%。
正如预期一样,在写入操作过程中,观察到更多 SQL Server 负载。但是,最大增长多增长了 2.06%,这一点无关紧要。在所有测试中,数据库服务器 CPU 使用率平均值均低于 10%。此类测试均在 1x1 服务器场上执行。数据库服务器 CPU 使用率随着 Web 服务器数量的增加而增加。这一点已在读写操作的扩展特性一节进行了详细讨论。
在这些测试过程中,还测量了 Web 服务器 CPU 使用率。下图显示了在这些测试过程中,即使每小时写入次数接近 500,Web 服务器 CPU 使用率平均值也保持在 60-80% 范围内。
不过,在发生写入活动时,实际测量到的 CPU 使用率会出现高峰,如下图所示。通常,这些 CPU 高峰不代表有问题。绿色区域可提供 CPU 峰值储备以缓解 CPU 负载的部分高峰压力。此外,由于添加了更多 Web 服务器,高峰影响会分散到这些服务器之间,因此对单台 Web 服务器 CPU 的影响就会降低。但是,您应该知道这种高峰是实际部署中预期会出现的情况;虽然写入活动通常会突然发生,但它并不是统一分发的。
对于典型部署而言,90% 的缓存命中率很低。包含大量读取操作的大多数 SharePoint Server 2010 部署的输出缓存命中率达到了 95% 或更高。
有关写入操作对吞吐量的影响的结论和建议
呈现的数据表明写入操作不会对读者系统的整个吞吐量产生严重的不利影响。您应该意识到写入活动会导致 CPU 使用率出现高峰,因此,您应该规划典型配置以预见这些高峰。拉平这些高峰的策略是将 Web 服务器数量扩展为多台。此方法有两个优点:
可将写入负载分散到多台 Web 服务器上,从而消除整个高峰。
可提高读取 RPS,特别是在高输出缓存命中率的情况下。
内容部署的影响
就地创作模型使用单个环境进行编辑和读取,作为该模型的备用模型则可将一个环境分为两个单独的环境(一个创作环境和一个生产环境),并可通过内容部署将内容从创作环境复制到生产环境。
在此配置中,除了内容部署正在导入内容时以外,生产环境中几乎不包含写入活动,或根本不包含写入活动。对于这些测试,在 Web 服务器 CPU 使用率达到 70-80% 范围之前,会添加读取操作。然后,内容部署作业会从创作网站集中以数据包的形式导出 10 个分别具有 500 个页面的网站,并将此数据包导入发布网站集。此部署包的大小大于通常在实际环境中观察到的部署包大小,这样可以充分延长此内容部署作业的持续时间,以便查看测试结果。有关部署内容特性的详细信息,请参阅数据集一节。
在导出操作完成后,我们将此内容导入一个单独的网站集,在进行导入时,我们测量了应用程序服务器和 SQL Server 的负载,以及吞吐量。我们针对多种不同的输出缓存命中率执行导入测试。
观察到的主要内容是:导入只对整个读取 RPS 产生轻微影响,如下图所示。我们还观察到导入不会对 Web 服务器 CPU 使用率产生重大影响(如下表所示),且与缓存命中率无关。但是,导入会对 SQL Server CPU 产生更明显的影响,如下图所示。这是可以预见的,因为在数据库服务器中导入内容时,数据库服务器将承受更大负载。但是,在测试所有缓存命中率时,即使在导入过程中,SQL Server CPU 的使用率也保持在 12% 以下。
下表显示内容部署导入对 Web 服务器和数据库服务器 CPU 使用率的影响。
内容部署导入对 Web 服务器 CPU 使用率的影响
缓存命中率 | 100% | 99% | 98% | 95% | 90% | 50% | 0% |
---|---|---|---|---|---|---|---|
基准值 |
72.32% |
73.26% |
71.28% |
73.53% |
71.79% |
68.05% |
63.97% |
导入时 |
70.93% |
74.45% |
69.56% |
74.12% |
70.95% |
67.93% |
63.94% |
内容部署导入对数据库服务器 CPU 使用率的影响
缓存命中率 | 100% | 99% | 98% | 95% | 90% | 50% | 0% |
---|---|---|---|---|---|---|---|
基准值 |
1.19% |
1.64% |
2.01% |
3.00% |
3.73% |
5.40% |
6.82% |
导入时 |
6.03% |
6.82% |
6.97% |
7.96% |
8.52% |
10.29% |
10.56% |
有关内容部署的影响的结论和建议
测试结果表明,在普通网站运行过程中执行内容部署操作时,不会造成重大性能问题。这些结果显示不一定要在低流量期间部署内容才能最大程度地降低此操作对整体性能的影响,并且部署次数主要视业务需求而定,并非视性能要求而定。
数据库快照在内容部署导出期间的影响
在 SharePoint Server 2010 中,可以配置内容部署以创建源内容数据库的快照,然后再从中导出内容。这样可以有效防止在导出过程中出现导出时可能发生的任何创作活动。但是,快照会影响数据库服务器的写入性能,因为在写入数据时快照相当于乘法器。例如,如果源数据库有两个快照,您随后向源数据库写入数据,则数据库服务器会将现有数据复制到每个个快照,然后才将新数据写入源数据库。这表示向源数据库写入一次会引发三次实际写入操作:向源数据库写入一次,然后再向每个数据库快照写入一次。
为了确定快照对创作环境的影响,在发生写入活动的同时,我们在导出操作期间测量了写入 RPS 和响应时间,以及 Web 服务器、数据库服务器和应用程序服务器的 CPU 使用率。下表显示了这些结果。
数据库快照在内容部署期间的影响
指标 | 4 WPH - 无快照 | 4 WPH - 有快照 |
---|---|---|
写入 RPS |
0.2 |
0.16 |
响应时间 |
0.13 |
0.15 |
Web 服务器 CPU 使用率百分比 |
0.42% |
0.27% |
应用程序服务器 CPU 使用率百分比 |
8.67% |
8.98% |
数据库服务器 CPU 使用率百分比 |
3.34% |
2.41% |
数据库快照在内容部署期间的影响
指标 | 8 WPH - 无快照 | 8 WPH - 有快照 |
---|---|---|
写入 RPS |
0.44 |
0.44 |
响应时间 |
0.13 |
0.13 |
Web 服务器 CPU 使用率百分比 |
0.61% |
0.73% |
应用程序服务器 CPU 使用率百分比 |
14.6% |
12% |
数据库服务器 CPU 使用率百分比 |
7.04% |
7.86% |
有关数据库快照在内容部署导出期间的影响的结论和建议
测试结果表明,数据库快照不会对任何测量的数据点产生重大影响。记录的所有差异均在误差范围以内。此结果确认了可以使用数据库快照,而不会产生重大性能问题。
内容特性
这些测试均在单个数据集上执行,该数据集是在回答一组特定问题时创建的。您的数据集会有所不同并会随时间的推移而发生变化。本节调查内容特性(例如,网页库中的网页数量和网页上包含的功能)如何为做出容量管理决策提供相关信息。
网页数量
我们测试了多个网页库大小的最大 RPS。我们在禁用了输出缓存的 4x1 拓扑上,使用匿名访问方式进行测试。所有页面在未压缩时均为 42 KB,在压缩时均为 12 KB。下表显示了测试结果。
网页库的网页数量对 RPS 的影响
网页数量 | 3 | 1,000 | 20,000 |
---|---|---|---|
最大 RPS |
860 |
801 |
790 |
网页数量增长到 20,000 时,没有对最大 RPS 产生重大影响。
多值查阅字段
多值查阅字段是列表中引用其他列表中一个或多个项目的列,例如,使用企业托管元数据的列。这些字段通常用作页面的搜索关键字,不一定会显示。在某些情况下(如企业 Wiki),在页面内容中显示这些字段值是有意义的。例如,在创建页面时,可能会将其归为各种类别(例如,新闻网站上的“世界新闻”、“人情世故”和“体育”),而母版页中包括的占位符会向用户显示使用哪些类别对该网页进行了标记。
在每次向网页发出请求时,使用多值查阅字段可获取更多数据。因此,一个页面上包含多个多值查阅字段会影响性能。
下图显示了多值查阅字段对吞吐量的影响。
下图显示了多值查阅字段对服务器场资源使用率的影响。
当多值查阅字段的数量因 Web 服务器和数据库服务器之间网络的影响而增加时,最大 RPS 会下降。
使用情况报告的影响
使用情况报告是一项服务,可帮助管理员监视有关网站使用情况的统计信息。有关使用情况报告的详细信息,请参阅配置使用率和运行状况数据集 (SharePoint Server 2010)。
我们在 1x1 服务器场上测试了使用情况报告计时器作业对最大 RPS 的影响。下表描述了测试结果。
使用率日志记录对性能(以 RPS 计)的影响
启用使用率数据库 | 禁用使用率数据库 | 差异 | |
---|---|---|---|
启用输出缓存 |
3,459 |
3,463 |
4 |
禁用输出缓存 |
629 |
638 |
9 |
这些结果表明,在只读方案中启用使用率日志记录不会对 RPS 产生重大影响。
关于作者
Joshua Stickler 是 Microsoft 的 SharePoint Server 2010 项目经理。
Tyler Butler 是 Microsoft 的 SharePoint Server 2010 项目经理。
Zhi Liu 是 Microsoft 的软件开发工程师,从事 SharePoint Server 2010 测试工作。
Cheuk Dong 是 Microsoft 的软件开发工程师,从事 SharePoint Server 2010 测试工作。
Philippe Flamm 是 Microsoft 的软件开发工程师,从事 SharePoint Server 2010 测试工作。