存储和 SQL Server 容量规划与配置 (SharePoint Server)

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

我们提供的容量规划信息包含帮助您在 SharePoint Server 环境中规划和配置存储和 SQL Server 数据库层的准则。 此信息建立在 Microsoft 对实时属性执行的测试的基础上。 但是,您的结果可能因使用的设备和针对网站所实施的功能而有所不同。

了解在 Microsoft 365 中管理 SharePoint 的网站存储限制

尽管测试未在 SQL Server 2014 (SP1) 、SQL Server 2016、SQL Server 2017 RTM 或 SQL Server 2019 上运行,但可以使用这些测试结果作为指南来帮助规划和配置存储和SQL Server数据库层SharePoint Server 订阅版、2019 或 2016 环境。 有关如何配置和调整 SQL Server 2012 的培训,请参阅 适用于 SharePoint Server 2013 的 SQL Server 2012。 测试结果与 SharePoint 2013 中的相同。

本文档供 SharePoint Server 场实施者和SQL Server数据库管理员共同使用,因为 SharePoint Server 通常在数据库由单独的SQL Server数据库管理员管理的环境中运行。 本文假定您非常了解 SharePoint Server 和 SQL Server。

若要更好地理解本文,需要熟悉 SharePoint Server 2013 容量管理和大小设置中介绍的概念。

SharePoint Server 2016 及更高版本的存储和数据库层设计和配置过程

建议你将存储和数据库层设计过程分为以下几个步骤。 这些部分提供有关每个设计步骤的详细信息,包括存储要求和最佳实践:

  1. 收集存储和 SQL Server 空间以及 I/O 要求

  2. 选择 SQL Server 版本

  3. 根据容量和 I/O 要求设计存储体系结构

  4. 估计内存要求

  5. 了解网络拓扑要求

  6. 配置 SQL Server

  7. 验证和监视存储和SQL Server性能

收集存储和 SQL Server 空间以及 I/O 要求

多个 SharePoint Server 体系结构因素影响存储设计。 主要因素是:内容数量、启用的功能、部署的服务应用程序、场数量和可用性需求。

开始规划存储之前,应了解 SharePoint Server 可使用的数据库。

本节内容:

SharePoint Server 所用的数据库

随 SharePoint Server (Subscription Edition、2019 或 2016 安装的数据库) 取决于环境中使用的服务应用程序。 所有 SharePoint Server 环境都依赖于SQL Server系统数据库。 本部分提供随 SharePoint Server 一起安装的数据库的摘要。 有关详细信息,请参阅SharePoint Server 中的数据库类型和说明

[!注意] 某些 SharePoint Server、SQL Server 数据库引擎和 SQL Server Reporting Services (SSRS) 数据库有特定的位置建议或要求。 有关这些数据库位置的信息,请参阅SharePoint Server 中的数据库类型和说明快速参考指南:SharePoint Server 2016 和 2019 数据库可作为 PDFVisio 文件下载。

以下数据库是自动安装的 SharePoint Server 系统数据库。

  • 配置

  • 管理中心内容

  • 内容(一个或多个)

下面列出了包含数据库的 SharePoint Server 服务应用程序:

  • App Management Service

  • SharePoint 的应用

  • Business Data Connectivity

  • 托管元数据

  • PerformancePoint Services

  • Project Server(仅限 SharePoint Server 2013)

  • Search Service

    • 搜索管理

    • 分析报告

    • 爬网

    • 链接

  • Secure Store Service

  • SharePoint Translation Service

  • SQL Server Power Pivot Service

  • State Service

  • 订阅设置服务

  • 收集使用率和运行状况数据

  • User Profile Service

    • 配置文件

    • 社会性标签

    • 同步

  • Word Automation Services

下面列出了 SharePoint Foundation 2013 数据库:

  • 配置

  • 管理中心内容

  • 内容(一个或多个)

  • App Management Service

  • Search Service 应用程序:

    • 搜索管理

    • 分析报告(一个或多个)

    • 爬网(一个或多个)

    • 链接(一个或多个)

  • Secure Store Service

  • Subscription Settings Service 应用程序(如果已通过 Windows PowerShell 启用)

  • Usage and Health Data Collection Service

  • Word Conversion Service

如果要与 SQL Server 进一步集成,则你的环境可能还会包含更多数据库,如以下方案所示。 仅当你使用 SQL Server 2016 RTM 企业版和 SQL Server 2016 SQL Server Analysis Services (SSAS),SQL Server Power Pivot for SharePoint 才可用在 SharePoint Server 2016 环境中。 如果正在使用中,还必须计划支持 Power Pivot 应用程序数据库以及系统上的额外负载。 有关详细信息,请下载新的 Deploying SQL Server 2016 PowerPivot and Power View in SharePoint 2016(在 SharePoint 2016 中部署 SQL Server 2016 PowerPivot 和 Power View)白皮书。 有关在多服务器 SharePoint Server 2016 服务器场中配置和部署商业智能的详细信息,请下载Deploying SQL Server 2016 PowerPivot and Power View in a Multi-Tier SharePoint 2016 Farm(在多层 SharePoint 2016 服务器场中部署 SQL Server 2016 PowerPivot 和 Power View)。

SQL Server 2016 Reporting Services (SSRS) 外接程序可以用于任何 SharePoint Server 2016 环境。 如果使用的是外接程序,请计划支持两个SQL Server Reporting Services数据库以及SQL Server Reporting Services所需的额外负载。

  • SQL Server 2012 Power Pivot for SharePoint 2013 可以用于包括 SQL Server 2008 R2 Enterprise Edition 和 SQL ServerAnalysis Services 的 SharePoint 2013 环境中。 如果正在使用中,还必须计划支持 Power Pivot 应用程序数据库以及系统上的额外负载。 有关详细信息,请参阅 在 SharePoint 场中规划 PowerPivot 部署Power Pivot - 概述和学习以及Power View - 概述和学习

  • SQL Server 2008 R2 Reporting Services (SSRS) 插件可以用于任何 SharePoint 2013 环境。 如果使用的是插件,请计划支持两个 SQL Server 2008 R2 Reporting Services 数据库,以及 SQL Server 2008 R2 Reporting Services 所需的额外负载。

注意

不再支持SQL Server Reporting Services与 SharePoint Server 2019 集成。 有关详细信息,请参阅 Reporting Services报表服务器 (SharePoint 模式) SharePoint 和 Reporting Services 服务器支持的组合

了解 SQL Server 和 IOPS

在托管 SQL Server 实例的任何服务器上,服务器从 I/O 子系统获得尽可能快的响应非常重要。

更多更快的磁盘或阵列可提供足够的每秒 I/O 操作数 (IOPS),同时在所有磁盘上保持低延迟和少队列。

I/O 子系统的较慢响应速度无法通过添加其他类型的资源(如 CPU 或内存)加以补偿。 但是,它会对整个场造成影响,并导致出现问题。 请在部署前规划最小延迟,并监视您现有的系统。

在部署新场之前,建议使用 Diskspd 实用工具对 I/O 子系统进行基准测试。 此工具适用于所有 Windows Server 版本以及SQL Server的所有版本。 有关详细信息,请参阅 Diskspd Utility: A Robust Storage Testing Tool(Diskspd 实用工具:一款强大的存储测试工具)。

压力测试还提供了 SQL Server 的有价值的信息。 有关信息,请参阅 Storage Benchmarking with DiskSpd(使用 DiskSpd 进行存储基准测试)。

有关如何从 SQL Server 角度分析 IOPS 要求的详细信息,请参阅 Analyzing I/O Characteristics and Sizing Storage Systems for SQL Server Database Applications(分析 I/O 特点并调整 SQL Server 数据库应用程序的存储系统大小)。

估计核心存储和 IOPS 需求

配置和内容存储以及 IOPS 是基层,必须在每个 SharePoint Server 部署中计划这些内容。

配置存储和 IOPS

配置数据库和管理中心内容数据库的存储要求并不大。 建议为配置数据库分配 2 GB,为管理中心内容数据库分配 1 GB。 随着时间的推移,配置数据库可能会增长到 1 GB 以上。 它不会迅速增长 - 对于每个 50,000 个网站集,它大约会增长 40 MB。

配置数据库的事务日志可能很大。 建议定期备份配置数据库的事务日志以强制截断。 若正在使用 SQL Server Always On 可用性组或数据库镜像,还应使数据库保持在完全恢复模式下运行。 有关详细信息,请参阅事务日志 (SQL Server)

提示

若未使用需要利用完全恢复模型的 SQL Serve 高可用性解决方案,可以考虑将配置数据库更改为简单的恢复模型。

配置数据库和管理中心内容数据库的 IOPS 要求最低。

内容存储和 IOPS

估计内容数据库所需的存储和 IOPS 不是一项精确的活动。 在测试和介绍以下信息过程中,我们要帮助您推导出用于确定部署初始大小的估计值。 但是,如果您的环境正在运行,我们希望您根据来自实时环境的数据重新检查容量需求。

若要详细了解总体容量计划方法,请参阅 SharePoint Server 2013 的容量管理和大小调整

估计内容数据库存储的公式

下面的过程介绍如何约估内容数据库的存储量,无需考虑日志文件:

  1. 使用下面的公式估计内容数据库的大小:

    数据库大小 = ((D x V) x S) + (10 KB x (L + (V x D)))

    注意

    [!注意] 公式中值 10 KB 是一个常数,用于粗略估计 SharePoint Server 所需的元数据量。 如果您的系统需要大量使用元数据,您可能需要增大此常数。

  2. 计算预期文档数。 此值由公式中的 D 表示。

    如何计算文档数将由您使用的功能确定。 例如对于My Sites或协作网站,建议您计算每个用户的预期文档数,然后乘以用户数。 对于记录管理或内容发布网站,可以计算由某个进程管理和生成的文档数。

    如果要从当前系统迁移,可以很轻松地推断出当前的增长率和使用率。 如果要创建新系统,请查看您的现有文件共享或其他存储库,并根据该使用率进行估计。

  3. 估计将要存储的文档的平均大小。 此值由公式中的 S 表示。 为不同类型或组的网站估计平均值很有意义。 My Sites、媒体存储库和不同部门门户的平均文件大小会显著不同。

  4. 估计环境中列表项目数。 此值由公式中的 L 表示。

    相对于文档,列表项目较难估计。 我们通常使用 (D) 文档数的三倍的估计值,但估计公式会因网站的使用方式而异。

  5. 确定大致的版本数。 估计库中任何文档的平均版本数。 此值通常远远低于允许的最大版本数。 此值在公式中称为 V。

    V 的值必须大于零。

例如,如果您要使用公式和下表中的指标估计协作环境中内容数据库的数据文件所需的存储空间量。 可能大约需要 105 GB。

Input
文档数 (D) 200,000
通过假定 10,000 个用户乘以 20 个文档计算得出
文档平均大小 (S) 250 KB
列表项目 (L) 600,000
非当前版本数 (V) 2
假定允许的最大版本数为 10

数据库大小 = (((200,000 x 2)) x 250) + ((10 KB x ( 600,000 + ( 200,000 x 2))) = 110,000,000 KB 或 105 GB

注意

[!注意] SharePoint Server 中的高效文件 I/O 是一个存储方法,用于将文件拆分为多个单独存储和更新的部分。 这些部分会在用户请求该文件时通过流处理方式合并在一起。 这提高了 I/O 性能,而通常不会增加文件大小。 但是,小文件所需的磁盘存储可能会有微小的增加。

影响内容数据库大小的功能

下面的 SharePoint Server 功能会影响内容数据库的大小:

  • 回收站 文档从第一阶段和第二阶段回收站完全删除之前,会一直占用内容数据库空间。 每月计算删除的文档数以确定回收站对内容数据库大小的影响。

  • 审核 审核数据可以快速复合并使用内容数据库中的大量空间,尤其在是查看审核打开的情况下。 不要允许审核数据无限制增长,建议仅在务必满足管理需求或内部控制时启用审核。 使用以下准则估计必须针对审核数据保留的空间:

    • 估计网站的新审核条目数,并将此数字乘以 2 KB(条目通常限制为 4 KB,平均大小约为 1 KB)。

    • 根据想要分配的空间,确定想要保留的审核日志天数。

注意

[!注意] Office Online Server 是下一版本的 Office Web Apps Server。 将 Office Online Server 与 SharePoint Server 2016、2019 配合使用,订阅版不会影响内容数据库的大小。 若要在 SharePoint Server 2016 场中部署 Office Online Server,请参阅Deploy Office Online Server

估计内容数据库 IOPS 需求

内容数据库的 IOPS 要求因环境的使用方式、可用磁盘空间和拥有的服务器数而异。 通常情况下,建议将环境中的预计工作负载与已测试的解决方案之一进行比较。 有关详细信息,并且可应用于较新版本的 SharePoint,请参阅 性能和容量测试结果以及 SharePoint Server 2013) (建议

在测试中,我们发现内容数据库的一般范围是 0.05 IOPS/GB 到 0.2 IOPS/GB 左右。 我们还发现某一种最佳做法是将上限增加到 0.5 IOPS/GB。 这种增加的比例是不必要的,并且可能远远超出你环境中的需求。 如果使用镜像,此比例增加会导致 IO 比主内容数据库多得多。 请注意,镜像内容数据库从来不是轻量级的。

估计服务应用程序存储需求和 IOPS

估计内容存储和 IOPS 需求之后,接下来必须确定环境中正使用的服务应用程序所需的存储和 IOPS。

SharePoint Server 服务应用程序存储和 IOPS 要求

若要估计系统中服务应用程序的存储要求,必须先了解服务应用程序及其使用方式。 下表列出了 SharePoint Server 2016 中包含数据库的服务应用程序。 SharePoint Server 订阅版、2019 或 2016 年的所有服务应用程序的存储和 IOPS 数据与 SharePoint Server 2010 和 2013 中相同。

Search Service 应用程序存储和 IOPS 要求

Database 扩展 磁盘 IOPS 磁盘大小 10M 项目 100M 项目
爬网 每 20M 项目 1 DB
SQL IOPS:每 1 DPS 10 个
中/高 Medium 15 GB
2 GB 日志
110 GB
50 GB 日志
链接 每 60M 项目 1 DB
SQL IOPS:每 1M 10 个
Medium Medium 10 GB
0.1 GB 日志
80GB
5 GB 日志
分析报告 达到 100-300 GB 时拆分 Medium Medium 取决于使用情况 取决于使用情况
Search Administration 1 DB 0.4 GB
1 GB 日志
1 GB 数据
2 GB 日志

服务应用程序存储要求和 IOPS 建议

服务应用程序 大小估计建议
用户配置文件 User Profile Service 应用程序与三个数据库关联:配置文件、同步和社会性标签。
注意:尚未完成对用户配置文件数据库存储要求和 IOPS 建议的测试。 有关详细信息,请再回来看看。
有关用户配置文件数据库信息,请参阅SharePoint Server 中的数据库类型和说明
Managed Metadata Service Managed Metadata Service 应用程序有一个数据库。 数据库的大小受系统中所用内容类型和关键字的数量影响。 许多环境将包括 Managed Metadata Service 应用程序的多个实例。
Secure Store Service Secure Store 服务应用程序数据库的大小由存储中凭据的数量和审核表中条目的数量决定。 建议为每 1,000 个凭据分配 5 MB。 它具有最低要求的 IOPS。
State Service State Service 应用程序有一个数据库。 建议为其分配 1 GB。 它具有最低要求的 IOPS。
Word Automation Services Word Automation Service 应用程序有一个数据库。 建议为其分配 1 GB。 它具有最低要求的 IOPS。
PerformancePoint Services PerformancePoint Service 应用程序有一个数据库。 建议为其分配 1 GB。 它具有最低要求的 IOPS。
Business Data Connectivity Service Business Data Connectivity Service 应用程序有一个数据库。 此数据库较小,不可能有明显增长。 它具有最低要求的 IOPS。 PerformancePoint Services不适用于订阅版。
App Management App Management service 应用程序有一个数据库。 此数据库较小,不可能有明显增长。 它具有最低要求的 IOPS。
Power Pivot Power Pivot Service 应用程序有一个数据库。 此数据库较小,且没有明显的 I/O 影响。 我们建议您使用相同的 IOPS 作为 SharePoint 内容数据库。 内容数据库的 I/O 要求明显高于 Power Pivot 服务应用程序数据库。

确定可用性需求

可用性是用户认为 SharePoint Server 环境的可用程度。 可用系统是一个弹性系统,即不经常发生影响服务的事件,并且在事件发生时会及时采取有效措施。

可用性要求会显著增加存储需求。 有关详细信息,请参阅为 SharePoint Server 创建具有高可用性的体系结构和策略。 另外,请参阅 SQL Server 2012 白皮书始终启用体系结构指南:使用“始终启用”可用性组构建高可用性和灾难恢复解决方案

选择 SQL Server 版本

对于 SharePoint Server 订阅版、2019 或 2016,建议考虑在以下 SQL Servers 企业版上运行你的环境,以利用这些版本提供的其他性能、可用性、安全性和管理功能。

  • SQL Server 2019(SharePoint 订阅版、2019 和 2016)

  • SQL Server 2017 RTM(SharePoint Server 2016 和 2019)

  • SQL Server 2016(SharePoint Server 2016 和 2019)

  • SQL Server 2014 Service Pack 1 (SP1)(仅 SharePoint Server 2016)

有关这些版本的优势的详细信息,请参阅 SQL Server 2014 版本支持的功能SQL Server 2016 的版本和支持的功能SQL Server 2017 的版本和支持的功能以及 SQL Server 2019 (15.x) ) 支持的功能。

对于 SharePoint Server 2013,建议考虑在具有 Service Pack 1 (SP1) 、SQL Server 2012 或 SQL Server 2014 的 SQL Server 2008 R2 Enterprise Edition上运行环境,以利用这些版本提供的其他性能、可用性、安全性和管理功能。 有关SQL Server 2008 R2 SP1、SQL Server 2012 和 SQL Server 2014 企业版本的优点的详细信息,请参阅 SQL Server 2014 版本支持的功能SQL Server 2012 版本支持的功能 SQL Server 2008 R2 版本支持的功能

特别考虑对以下功能的需求:

  • 备份压缩 备份压缩可以提升任何 SharePoint 备份的运行速度,并可用于 SQL Server 2008 及更高版本的各个版本系列。 通过在备份脚本中设置压缩选项或将运行 SQL Server 的服务器配置为默认进行压缩,可以大大降低数据库备份和传送日志的大小。 有关详细信息,请参阅备份压缩 (SQL Server)

    注意

    SharePoint Server 不支持 SQL Server 数据压缩,Search Service 应用程序数据库除外。

  • 透明数据加密 如果你的安全要求包括对透明数据加密的需求,则必须使用 SQL Server 企业版。

  • 内容部署 如果你规划使用内容部署功能,请考虑使用 SQL Server 企业版,以便系统可以利用数据库快照。

    注意

    如果要使用不支持数据库快照的远程 BLOB 存储提供程序,则不能使用内容部署或备份的快照。

  • 远程 BLOB 存储 如果想要利用到与每个内容数据库关联的文件之外的数据库或位置的远程 BLOB 存储,必须使用以下 Enterprise Edition:

    SharePoint Server 订阅版

    • SQL Server 2016

    • SQL Server 2017 RTM

    • SQL Server 2019

    SharePoint Server 2019

    • SQL Server 2016

    • SQL Server 2017 RTM

    • SQL Server 2019

    SharePoint Server 2016

    • SQL Server 2014 (SP1)

    • SQL Server 2016

    • SQL Server 2017 RTM

    • SQL Server 2019

    SharePoint 2013

    • SQL Server 2008 R2 SP1

    • SQL Server 2012 Enterprise Edition

  • 资源调控器 资源调控器是 SQL Server 2008 中引入的一项技术,利用该技术,可以指定因传入请求产生的资源消耗的限额,从而管理 SQL Server 工作负载和资源。 利用资源调控器,可以区分工作负载并根据你指定的限额在工作负载请求时分配 CPU 和内存。 有关如何使用Resource Governor的详细信息,请参阅 Resource Governor

    建议结合 SharePoint Server 使用资源调控器执行下列操作:

    • 限制搜索爬网组件的目标 Web 服务器消耗的 SQL Server 资源量。 建议的最佳实践是当系统欠载时将爬网组件限制为 10% 的 CPU。

    • 监视系统中每个数据库消耗的资源量。例如,可以使用资源调控器帮助您确定运行 SQL Server 的多个计算机中数据库的最佳放置位置。

  • Microsoft Power Pivot for SharePoint允许用户在Excel web 版中共享和协作处理用户生成的数据模型和分析,同时自动刷新这些分析。 您必须具有Office web 版才能将 Excel web 版 与 Power Pivot for SharePoint 和 SharePoint Server 2016 配合使用。 你可以使用具有 SharePoint Server 2016 的 SQL Server 2014 (SP1) 或 SQL Server 2016 RTM 企业版和 SQL Server Analysis Services 的商业智能。 但是,你只能结合使用 Power Pivot for SharePoint 和 SQL Server 2016 RTM,而不能结合使用 SQL Server 2014 (SP1)。

  • Power Pivot for SharePoint 2013 使用户可以共享 Excel 和浏览器中用户生成的数据模式和分析并在此方面进行协作,同时自动刷新这些分析。 它属于 SQL Server 2008 R2 Analysis Services (SSAS) 数据中心和 Enterprise Edition、SQL Server 2012 SP1 Analysis Services (SSAS) Enterprise Edition 以及 Analysis Services (SSAS) Enterprise 和 Business Intelligence Edition 的一部分。

根据容量和 I/O 要求设计存储体系结构

您为环境选择的存储体系结构和磁盘类型会影响系统性能。

本节内容:

选择存储体系结构

SharePoint Server 支持直接附加存储 (DAS)、存储区域网络 (SAN) 和网络附加存储 (NAS) 存储体系结构,但是仅在 NAS 与配置为使用远程 BLOB 存储的内容数据库结合使用时支持 NAS。 您的选择取决于业务解决方案和您的现有体系结构中的因素。

任何存储体系结构都必须支持您的可用性需求,且必须在 IOPS 和延迟方面表现出色。 若要获得支持,系统必须在 20 毫秒 (ms) 内持续返回数据的第一个字节。

直接附加存储 (DAS)

DAS 是一个直接附加到服务器或工作站的数字存储系统,两者之间没有存储网络。 DAS 物理磁盘类型包括串行附加 SCSI (SAS) 和串行附加 ATA (SATA)。

通常,我们建议您在共享存储平台对于 IOPS 平均值和峰值无法保证 20 毫秒响应时间和足够容量时,选择 DAS 体系结构。

存储区域网络 (SAN)

SAN 是一个将远程计算机存储设备(如磁盘阵列和磁带库)附加到服务器的体系结构,以这种方式,设备可以作为本地附加到操作系统的设备出现(例如块存储)。

通常,如果共享存储提供的好处对于您的组织具有重要意义,建议您选择 SAN。

共享存储的好处包括:

  • 更轻松地在服务器之间重新分配磁盘存储。

  • 可以为多个服务器提供服务。

  • 可以访问的磁盘数不受限制。

网络附加存储 (NAS)

NAS 设备是一台连接到网络的独立计算机。 它的唯一目的是为网络中的其他设备提供基于文件的数据存储服务。 NAS 设备上的操作系统和其他软件提供数据存储、文件系统和文件访问功能以及对这些功能的管理(例如文件存储)。

注意

[!注意] NAS 仅支持用于配置为使用远程 BLOB 存储 (RBS) 的内容数据库。 任何网络存储体系结构都必须在 1 毫秒内对 ping 作出响应,且必须在 20 毫秒内返回数据的第一个字节。 此限制不适用于本地 SQL Server FILESTREAM 提供程序,因为它仅将数据本地存储在同一服务器上。

注意

[!注意] 关于如果您使用 Internet 小型计算机系统接口 (iSCSI) 以及假设其是 NAS 协议,存在着混淆的情况。 如果通过通用 Internet 文件系统 (CFIS) 访问此 iSCSI 存储,则为 NAS 协议。 这意味着您不能将此存储与未配置为使用 RBS 的内容数据库一起使用。 但是,如果通过本地连接的硬盘访问此 iSCSI 存储,则被认为是 SAN 体系结构。 这意味着您可以将其与 NAS 一起使用。

选择磁盘类型

您在系统中使用的磁盘类型会影响可靠性和性能。 在其他条件同等的情况下,较大驱动器会增加平均寻道时间。 SharePoint Server 支持以下类型的驱动器:

  • 小型计算机系统接口 (SCSI)

  • 串行高级技术附件 (SATA)

  • 串行附加 SCSI (SAS)

  • 光纤通道 (FC)

  • 集成设备电子学 (IDE)

  • 固态硬盘 (SSD) 或闪存盘

选择 RAID 类型

RAID(独立磁盘冗余阵列)通常用于改善各个磁盘的性能特征(通过将多个磁盘内的数据分段),并提供保护以避免发生单个磁盘故障。

SharePoint Server 支持所有 RAID 类型。 但是,我们建议使用 RAID 10 或具有同等性能的特定于供应商的 RAID 解决方案。

在配置 RAID 阵列时,确保将文件系统与供应商提供的偏移对齐。

有关针对 SQL Server 设置 RAID 的详细信息,请参阅 RAID

估计内存要求

SharePoint Server 所需的内存与正运行 SQL Server 的服务器上托管的内容数据库的大小直接关联。

添加服务应用程序和功能时,要求可能会增加。 下表提供了有关建议内存量的准则。

内容数据库的总计大小 针对运行 SQL Server 的计算机建议的 RAM
小型生产部署的最低要求 8 GB
中型生产部署的最低要求 16 GB
建议最高 2 TB 32 GB
建议在 2 TB 与最大 5 TB 之间的范围内 64 GB
建议大于 5 TB 64 GB 以上的额外 RAM 可能会提高 SQL Server 缓存速度

注意

[!注意] 这些值高于 SQL Server 的最小建议值,因为 SharePoint Server 环境需要进行数据分布。 有关SQL Server系统要求的详细信息,请参阅安装 SQL Server 2014 的硬件和软件要求和安装 SQL Server 2016 和 2017 SQL Server的硬件和软件要求

有关 SQL Server 容量限制和规格的详细信息,请参阅SQL Server 各版本的计算能力限制SQL Server 的最大容量规格

影响所需内存的其他因素包括:

  • 使用 SQL Server 镜像。

  • 频繁使用大于 15 MB 的文件。

了解网络拓扑要求

在场内部和场之间规划网络连接。 建议使用延迟较低的网络。

下面的列表提供一些最佳实践和建议:

  • 场中的所有服务器都应针对运行 SQL Server 的服务器具有 LAN 带宽和延迟。 延迟不应大于 1 毫秒。

  • 建议不要使用广域网 (WAN) 拓扑,其中运行 SQL Server 的服务器通过延迟大于 1 毫秒的网络从场的其他组件远程部署,因为此拓扑尚未测试。

  • 如果计划使用 SQL Server“始终启用”实现套件、镜像、日志传送或故障转移群集来保持远程网站处于最新状态,请规划足够的 WAN 网络。

  • 建议 Web 服务器和应用程序服务器配备两个网络适配器:一个适配器处理用户流量,另一个处理与运行 SQL Server 的服务器之间的通信。

    注意

    如果使用 iSCSI,确保每个网络适配器都专用于网络通信或 iSCI,而非同时用于两者。

配置 SQL Server

以下各节介绍如何规划为 SharePoint Server 配置 SQL Server。

本节内容:

估计需要多少个服务器

通常,SharePoint Server 旨在利用 SQL Server 向外扩展。例如,相比于仅使用几个大型服务器,如果 SharePoint Server 使用多个运行 SQL Server 的中型服务器,将会具有更好的性能表现。

始终将 SQL Server 放在专用服务器上:这些服务器没有运行任何其他场角色,也没有托管任何其他应用程序的数据库。 这一建议的唯一例外是如果你针对开发或非性能方向的测试环境在独立服务器上部署系统。 虽然 SQL Server 可以作为 SharePoint 在同一台服务器上运行,但为了使性能更佳,我们建议在单独的服务器上运行 SQL Server。

以下是何时部署一台运行 SQL Server 实例的额外服务器的常规指南:

  • 存在四个以上 Web 服务器以全容量运行时,再添加一台数据库服务器。

  • 当前服务器达到 RAM、CPU、磁盘 IO 吞吐量、磁盘容量或网络吞吐量的有效资源限制时,再添加一台数据库服务器。

有关详细信息,请参阅按 SQL Server 版本划分的计算能力限制SQL Server 的最大容量规范

若要在运行 Secure Store Service 应用程序时提升安全凭据存储,建议将 Secure Store 数据库托管在仅限一名管理员访问的单独数据库实例上。

配置存储和内存

在运行 SQL Server 的服务器上,建议每个 CPU 的 L2 缓存最低为 2 MB,以提高内存。

按照供应商存储配置建议操作

若要在配置物理存储阵列时获得最佳性能,请按照存储供应商提供的硬件配置建议操作,而不要使用操作系统的默认值。

如果没有供应商的指导,建议使用对 Windows Server 2012 R2 可用的 PowerShell 存储 cmdlet。 有关详细信息,请参阅 Windows PowerShell 中的存储 Cmdlet

提供尽可能多的资源

确保磁盘的 SQL Server I/O 通道没有与其他应用程序(例如页面文件和 Internet Information Services (IIS) 日志)共享。

提供尽可能多的总线带宽。 较大的总线带宽可帮助提高可靠性和性能。 考虑一下,硬盘不是总线带宽的唯一用户,例如,您还必须考虑网络访问。

设置 SQL Server 选项

以下 SQL Server 设置和选项应在部署 SharePoint Server 之前配置。

  • 不要在托管 SQL Server 并支持 SharePoint Server 的服务器上启用自动创建统计信息。 SharePoint Server 会在进行设置和升级时配置必需的设置。 自动创建统计信息可以将查询的执行计划从SQL Server的一个实例更改为另一个SQL Server实例。 因此,为了向所有客户提供持续支持,SharePoint Server 根据需要为查询提供了编码提示,从而在所有方案中提供最佳性能。

  • 为确保获得最佳性能,强烈建议你将托管 SharePoint Server 数据库的 SQL Server 实例的 max degree of parallelism (MAXDOP) 设置为 1。 有关如何设置 max degree of parallelism 的详细信息,请参阅 配置 max degree of parallelism 服务器配置选项

配置数据库

下面的指南介绍在环境中配置每个数据库时进行规划的最佳实践。

在各磁盘之间进行数据分隔并设置优先级

理想情况下,应在单独的物理硬盘上放置 tempdb 数据库、内容数据库、数据库、搜索数据库和 SQL Server 2019、SQL Server 2017 RTM、SQL Server 2016、SQL Server 2014 (SP1)、SQL Server 2012 和 SQL Server 2008 R2 与 SP1 事务日志。

下面的列表为设置数据优先级提供了一些最佳实践和建议:

  • 在速度较快的磁盘中设置数据优先级时,请使用以下分级:

    • Tempdb 数据文件和事务日志

    • 数据库事务日志文件

    • 搜索数据库,除了搜索管理数据库

    • 数据库数据文件

      在着重面向读取的门户网站中,将数据优先级设置为高于日志优先级。

  • 测试和客户数据显示,tempdb 的磁盘 I/O 不足可能会阻碍 SharePoint Server 场性能。 为避免此问题,请为 tempdb 分配专用磁盘。 如果预计存在或监测到高工作负荷(即读取操作或写入操作需要的平均时间超过 20 毫秒),则可能必须通过分隔磁盘上的文件或将磁盘替换为更快的磁盘来消除瓶颈。

  • 为获得最佳性能,请将 tempdb 放在 RAID 10 阵列上。 tempdb 数据文件数应与 CPU 内核数相同,而且 tempdb 数据文件应设置为同等大小。 为此,将双核处理器算作两个 CPU。 将支持超线程的每个处理器算作一个 CPU。 有关详细信息,请参阅优化 tempdb 性能

  • 可将数据库数据和事务日志文件分隔到不同的磁盘上。 如果因文件过小而不足以使用整个磁盘或带区,因此必须使文件共享磁盘,或者您拥有的磁盘空间不足,请将具有不同使用模式的文件放在同一磁盘上,以尽量减少并发访问请求数。

  • 有关如何配置所有日志和搜索数据库以对您的特定存储解决方案进行写入优化的信息,请咨询您的存储硬件提供商。

对内容数据库使用多个数据文件

请按照以下建议操作以便获得最佳性能:

  • 仅在数据库的主文件组中创建文件。

  • 将文件分布到不同的磁盘上。

  • 数据文件的数目应小于或等于 CPU 内核的数目。 为此,将双核处理器算作两个 CPU。 将支持超线程的每个处理器算作一个 CPU。

  • 创建大小相同的数据文件。

重要

[!重要说明] 虽然可以使用 SharePoint Server 内置的备份和恢复工具来备份和恢复多个数据文件,但如果您在同一位置进行覆盖,则这些工具无法将多个数据文件恢复到不同的位置。 因此,在对内容数据库使用多个数据文件时,我们强烈建议您使用 SQL Server 备份和恢复工具。 有关如何备份和恢复 SharePoint Server 的详细信息,请参阅在 SharePoint Server 中规划备份和恢复

有关如何创建和管理文件组的详细信息,请参阅物理数据库文件和文件组

限制内容数据库大小以提高可管理性

规划可提高环境可管理性、性能和易于升级性的数据库大小。

为确保系统性能,建议将内容数据库的大小限制为 200 GB,除非存在特定使用方案和条件支持更大大小的情况。 有关内容数据库大小限制的详细信息,请参阅 SharePoint Server 2016 和 2019 的软件边界和限制中的“内容数据库限制”部分。

我们通常建议网站集不应超过 100 GB,除非它是数据库中唯一的网站集,这样,您可以在需要时使用 SharePoint Server 粒度备份工具,将网站集移至另一个数据库。

主动管理数据的增长和日志文件

建议您考虑使用以下建议,主动管理数据和日志文件增长:

  • 尽可能将所有数据和日志文件预先增长至其预期的最终大小。

  • 鉴于安全原因,建议您启用自动增长。 不要依赖默认自动增长设置。 配置自动增长时,考虑使用以下准则:

    • 在规划超过建议大小 (200 GB) 的内容数据库时,请将数据库自动增长值设置为固定兆字节 (MB) 数,而不是设置为百分比。 此设置可降低SQL Server增加文件大小的频率。 增加文件大小是一项涉及用空白页填充新空间的阻止操作。

    • 如果计算的内容数据库大小预计在下一年内不会达到建议的最大大小 200 GB,请使用 ALTER DATABASE MAXSIZE 属性将其设置为一年内数据库预计达到的最大大小(误差幅度为 20%)。 定期查看此设置以确保其始终是基于过去增长率的适当值。

  • 将磁盘中的可用空间保持在 25% 这一级别,以便适应增长和高峰使用模式。 如果通过将磁盘添加到 RAID 阵列或分配更多存储空间来管理增长,请密切监视磁盘大小以避免出现空间不足的情况。

验证和监视存储和 SQL Server 性能

通过对硬件的性能和备份解决方案进行测试,您可以满足服务级别协议 (SLA)。 尤其应对运行 SQL Server 的计算机的 I/O 子系统进行测试,以确保其性能令人满意。

对正在使用的备份解决方案进行测试,以确保该解决方案可在可用的维护时段内备份系统。 如果备份解决方案不能满足你的业务所需的 SLA,请考虑使用增量备份解决方案,如 Microsoft 系统中心数据保护管理器。

请务必跟踪运行 SQL Server 的服务器的以下资源组件:CPU、内存、缓存/命中率和 I/O 子系统。 当一个或多个组件变慢或超载时,应根据当前和预计工作负载分析相应策略。 有关详细信息,请参阅监视和优化性能

下节列出一些性能计数器,我们建议您用其监视在 SharePoint Server 环境中运行的 SQL Server 数据库的性能。 此外,还列出了每个计数器运行状况的近似值。

有关如何监视性能和使用性能计数器的详细信息,请参阅 Windows 性能监视器配置性能监视

要监视的 SQL Server 计数器

监视以下 SQL Server 计数器,以确保服务器的运行状况良好:

  • 常规统计信息 此对象提供的计数器用于监视常规服务器端活动,如当前连接数以及每秒与运行 SQL Server 实例的计算机连接或断开连接的用户数。 考虑监视以下计数器:

    • 用户连接 此计数器显示运行 SQL Server 的计算机上的用户连接数。 如果发现这一数字自基线上升了 500%,则会发现性能下降。
  • 数据库 此对象提供的计数器用于监视大容量复制操作、备份和还原吞吐量以及事务日志活动。 监视事务和事务日志以便确定数据库中发生的用户活动量以及事务日志达到的填满程度。 用户活动量可以决定数据库的性能并影响日志大小、锁定和复制。 通过监视低级日志活动来衡量用户活动和资源使用率,可帮助您找到性能瓶颈所在。 考虑监视以下计数器:

    • 事务数/秒 此计数器显示给定数据库或整个服务器上的每秒事务数。 此数字更重要的是为您提供基线,帮助您解决问题。
  • 锁数 此对象提供有关各资源类型上 SQL Server 锁数的信息。 考虑监视以下计数器:

    • Average Wait Time (ms) 此计数器显示每个导致等待的锁请求的平均等待时间量。

    • Lock Wait Time (ms) 此计数器显示锁在最后一秒内的等待时间。

    • Lock waits/sec 此计数器显示每秒不能立即满足且必须等待资源的锁数。

    • Number of deadlocks/sec 此计数器显示每秒运行 SQL Server 的计算机上的死锁数。 此数字不应超过 0。

  • 闩锁 此对象提供的计数器用于监视称为闩锁的内部 SQL Server 资源锁。 通过监视闩锁来确定用户活动和资源利用率,可以帮助您找到性能瓶颈所在。 考虑监视以下计数器:

    • Average Latch Wait Time (ms) 此计数器显示必须等待的闩锁请求的平均闩锁等待时间。

    • Latch Waits/sec 此计数器显示不能立即授权的闩锁请求数。

  • SQL 统计信息 此对象提供的计数器用于监视发送到 SQL Server 实例的编译和请求类型。 通过监视查询编译和重新编译数以及由 SQL Server 的实例收到的批次数,可为您提供一个 SQL Server 以多快的速度处理用户查询以及查询优化器如何有效处理查询的指示。 考虑监视以下计数器:

    • SQL Compilations/sec 此计数器指示每秒编译代码路径被进入的次数。

    • SQL Re-Compilations/sec 此计数器指示每秒语句重新编译数。

  • 缓冲区管理器 此对象提供的计数器一部分用于监视 SQL Server 如何使用内存存储数据页面、内部数据结构和过程缓存,另外还有一部分用于监视 SQL Server 读取和写入数据库页面时的物理 I/O。 考虑监视以下计数器:

    • Buffer Cache Hit Ratio

    • 此计数器显示在缓冲区缓存中找到而不需要从磁盘中读取的页面的百分比。 该比率是缓存命中总数与最近几千次页面访问的缓存查找总数之比。 由于从缓存读取比从磁盘读取成本要低得多,因此您需要将此比率设置为较高值。 通常,您可以通过增加 SQL Server 可用的内存量提高缓冲区缓存命中率。

  • 计划缓存 此对象提供的计数器用于监视 SQL Server 如何使用内存存储对象,如存储过程、临时和准备的 Transact-SQL 语句和触发器。 考虑监视以下计数器:

    • Cache Hit Ratio

    • 此计数器指示规划的缓存命中数与查找数的比率。

要监视的物理服务器计数器

监视以下计数器,以确保运行 SQL Server 的计算机的运行状况良好:

  • Processor: % Processor Time: _Total 此计数器显示处理器执行应用程序或操作系统进程(未空闲)所花的时间百分比。 在运行 SQL Server 的计算机上,此计数器的值应保持在 50% 与 75% 之间。 如果存在持续重载,请调查是否存在异常进程活动或服务器是否需要更多 CPU。

  • System: Processor Queue Length 此计数器显示处理器队列中的线程数。 监视此计数器以确保线程数始终小于 CPU 内核数的两倍。

  • Memory: Available Mbytes 此计数器显示计算机上运行的处理器可用的物理内存量(以 MB 为单位)。 监视此计数器以确保将总可用物理 RAM 保持在至少 20% 这一水平。

  • Memory: Pages/sec 此计数器显示为解决硬页面错误从磁盘读取页面或将页面写入磁盘的速度。 监视此计数器,确保其保持在 100 以内。

有关详细信息和内存疑难解答方法,请参阅下列资源:

有关详细信息和内存疑难解答方法,请参阅针对 SQL Server 2008 R2 SP1 的监视内存使用量、针对 SQL Server 2012 的监视内存使用量以及针对 SQL Server 2014 的监视内存使用量

要监视的磁盘计数器

监视以下计数器,以确保磁盘的运行状况良好。 以下值表示随时间推移测量的值,而不是在突然高峰期间发生的值,而不是基于单个度量的值。

  • Physical Disk: % Disk Time: DataDrive 此计数器显示所选磁盘驱动器处理读取或写入请求的运行时间的百分比,通常指示磁盘的繁忙程度。 如果 PhysicalDisk: % Disk Time 计数器的值很高(超过 90%),请检查 PhysicalDisk: Current Disk Queue Length 计数器以查看等待磁盘访问的系统请求数。 等待 I/O 请求数应保持在不超过组成物理磁盘的轴数的 1.5 到 2 倍。

  • Logical Disk: Disk Transfers/sec 此计数器显示在磁盘上执行读取和写入操作的速率。 使用此计数器可监视增长趋势并进行适当的预测。

  • Logical Disk: Disk Read Bytes/secLogical Disk: Disk Write Bytes/sec 这两个计数器显示在读取或写入操作过程中从磁盘传送字节的速率。

  • Logical Disk: Avg. Disk Bytes/Read 此计数器显示在读取操作过程中从磁盘传送的平均字节数。 该值可反映磁盘延迟 - 较大的读取操作会导致更长的延迟时间。

  • Logical Disk: Avg. Disk Bytes/Write 此计数器显示在写入操作过程中传送到磁盘的平均字节数。 该值可反映磁盘延迟 - 较大的写入操作会导致更长的延迟时间。

  • Logical Disk: Current Disk Queue Length 此计数器显示在收集性能数据时磁盘上未完成的请求数。 对于此计数器,值越小越好。 若每个磁盘未完成的请求数大于 2,则表示存在瓶颈,应进行调查。 因此,对于由四个磁盘组成的逻辑单元 (LUN) ,最多可以接受值 8。 瓶颈会造成工作积压,这些工作积压会扩展到正在访问磁盘的当前服务器之外,从而导致用户长时间等待。 可以通过以下方法来解决瓶颈:向 RAID 阵列添加更多的磁盘,用速率更快的磁盘替换现有磁盘或将一些数据移动到其他磁盘。

  • 逻辑磁盘:平均磁盘队列长度 此计数器显示样本间隔内为所选磁盘排队的读取和写入请求的平均数。 规则是,每个轴应有两个或更少的未完成读取和写入请求。 但是,由于存储虚拟化和配置之间的 RAID 级别存在差异,因此很难衡量此请求计数。 查找大于平均磁盘队列长度和大于平均磁盘延迟的组合。 此组合可能指示存储阵列缓存被过度使用,或者与其他应用程序共享的轴正在影响性能。

  • Logical Disk: Avg. Disk sec/ReadLogical Disk: Avg. Disk sec/Write 这些计数器显示对磁盘进行读取或写入操作的平均时间(以秒为单位)。 监视这些计数器,确保它们占用低于 85% 的磁盘容量。 如果读取或写入操作占用的磁盘容量超过 85%,磁盘访问时间将呈指数级增加。 要确定硬件的具体容量,请参考供应商文档或使用 Diskspd 实用工具(一种存储测试工具)来计算。 有关详细信息,请参阅 Diskspd:一个可靠的存储性能工具

    • 逻辑磁盘:平均磁盘秒/读取 此计数器显示从磁盘执行读取操作的平均时间(以秒为单位)。 在经过良好调整的系统上,理想值为 1 到 5 毫秒的日志, (缓存数组) 理想值为 1 毫秒,对于数据 (理想情况下小于 10 毫秒) ,理想值为 4 到 20 毫秒。 在高峰时段,延迟可能会更高。 但是,如果经常发生高值,则应调查原因。

    • 逻辑磁盘:平均磁盘秒/写入 此计数器显示对磁盘执行写入操作的平均时间(以秒为单位)。 在经过良好调整的系统上,理想值为 1 到 5 毫秒的日志, (缓存数组) 理想值为 1 毫秒,对于数据 (理想情况下小于 10 毫秒) ,理想值为 4 到 20 毫秒。 在高峰时段,延迟可能会更高。 但是,如果经常发生高值,则应调查原因。

      在将 RAID 配置与 Logical Disk: Avg. Disk Bytes/ReadLogical Disk: Avg. Disk Bytes/Write 计数器配合使用时,请使用下表中列出的公式以确定在磁盘上进行输入和输出操作的速率。

RAID 级别 公式
RAID 0 I/Os per disk = (reads + writes) / number of disks
RAID 1 I/Os per disk = [reads + (2 x writes)] / 2
RAID 5 I/Os per disk = [reads + (4 x writes)] / number of disks
RAID 10 I/Os per disk = [reads + (2 x writes)] / number of disks

例如,如果有一个带两个物理磁盘的 RAID 1 系统,则各个计数器将具有下表中显示的值。

计数器
Avg. Disk sec/Read** 80
Logical Disk: Avg. Disk sec/Write** 70
Avg. Disk Queue Length** 5
  • I/O value per disk 的计算公式如下:(80 + (2 x 70))/2 = 110

  • disk queue length 的计算公式如下:5/2 = 2.5

  • 在此情况下,存在一个边界 I/O 瓶颈。

其他监视工具

也可以使用 SQL Server 2008 中的 sys.dm_io_virtual_file_stats 动态管理视图来监视磁盘延迟并分析趋势。 有关详细信息,请参阅 sys.dm_io_virtual_file_stats (Transact-SQL)

适用于 SharePoint Server 2013 的 SQL Server 2012

感谢 Bill Baer(Microsoft 高级产品市场营销经理)和 Brian Alderman(MicroTechPoint CEO 兼创始人)提供的一系列在线 SQL Server 2012 培训模块。 特别鸣谢 Channel 9 Microsoft 提供这些在线培训模块。 以下培训模块提供了有关 SQL Server 2012 数据库设置的详细信息,有助于了解如何提高 SharePoint Server 2016 性能、可用性和安全性。

另请参阅

概念

SharePoint Server 2016 和 SharePoint Server 2019 环境中的 SQL Server 概述

优化 SharePoint Server 2013 的性能

SharePoint Server 服务器场中 SQL Server 的最佳实践

SharePoint Server 2013 中的性能规划

SharePoint Server 2013 的容量管理和大小调整

SharePoint Server 2013 的容量规划

其他资源

SharePoint Server 2013 环境中的 SQL Server 概述