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

 

**上一次修改主题:**2018-03-09

**摘要:**了解如何在 SharePoint Server 2016 和 SharePoint Server 2013 中规划和配置 SQL Server 存储和数据库层。

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

备注

本文中的性能和容量测试与 Microsoft SQL Server 2014 Service Pack 1 (SP1)、Microsoft SQL Server 2016、SQL Server 2017 RTM 和 SharePoint Server 2016 有关。测试结果与 SharePoint Server 2013 中的相同。
尽管没有在 SQL Server 2014 (SP1)、SQL Server 2016 或 SQL Server 2017 RTM 中运行测试,但仍可以参考这些测试结果,它们有助于在 SharePoint Server 2016 环境中计划和配置存储和 SQL Server 数据库层。有关如何配置和调整 SQL Server 2012 的培训,请参阅 SQL Server 2012 和 SharePoint Server 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 空间以及 I/O 要求

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

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

本节内容:

  • SharePoint Server 所用的数据库

  • 了解 SQL Server 和 IOPS

  • 估计核心存储和 IOPS 需求

  • 确定服务应用程序存储需求和 IOPS

  • 确定可用性需求

SharePoint Server 所用的数据库

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

有关支持 SharePoint Server 2016 的数据库的图片概览,请参阅 Quick reference guide:SharePoint Server 2016 databases(快速参考指南:SharePoint Server 2016 数据库)。还可以将此 SharePoint Server 2016 数据库海报下载为 PDFVisio 文件。

备注

某些 SharePoint Server、SQL Server 数据库引擎和 SQL Server Reporting Services (SSRS) 数据库有特定的位置建议或要求。有关这些数据库位置的信息,请参阅SharePoint Server 中的数据库类型和说明

以下数据库是自动安装的 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 部署和 SQL Server PRO 文章 Understanding PowerPivot and Power View in Microsoft Excel 2013(了解 Microsoft Excel 2013 中的 PowerPivot 和 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 和 IOPS

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

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

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

部署新场之前,建议通过使用 Diskspd 实用工具检测 I/O 子系统。请注意,此工具可在拥有所有 SQL Server 版本的所有 Windows 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 数据库镜像为配置数据库提供可用性,您必须使用完整恢复模式。

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

内容存储和 IOPS

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

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

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

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

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

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

    备注

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

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

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

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

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

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

    相对于文档,列表项目较难估计。我们通常使用文档数 (D) 的三倍作为估计值,但是根据网站的预计使用方式不同,估计值也将不同。

  5. 确定适当版本数。估计一个库中任意文档将存在的版本数平均值,此值通常会比允许的最大版本数小得多。此值由公式中的 V 表示。

    V 的值必须大于零。

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

输入

文档数 (D)

200,000

通过假定 10,000 个用户乘以 20 个文档计算得出

文档平均大小 (S)

250 KB

列表项目 (L)

600,000

非当前版本数 (V)

2

假定允许的最大版本数为 10

数据库大小 = (((200,000 x 2)) × 250) + ((10 KB × (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 一起使用不会影响内容数据库的大小。若要在 SharePoint Server 2016 场中部署 Office Online Server,请参阅部署 Office Online Server

估计内容数据库 IOPS 需求

内容数据库的 IOPS 要求因环境的使用方式、可用磁盘空间以及拥有的服务器数量有极大的差异。通常情况下,建议将环境中的预计工作负载与已测试的解决方案之一进行比较。有关详细信息,请参阅性能和容量测试结果和建议 (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 2016 中所有服务应用程序的存储和 IOP 数据与 SharePoint Server 2010 和 SharePoint Server 2013 中的数据一样。

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

数据库 扩展 磁盘 IOPS 磁盘大小 10M 项目 100M 项目

爬网

每 20M 项目 1 DB

SQL IOPS:每 1 DPS 10 个

中/高

Medium

15GB

2GB 日志

110GB

50GB 日志

链接

每 60M 项目 1 DB

SQL IOPS:每 1M 10 个

Medium

Medium

10GB

0.1GB 日志

80GB

5GB 日志

分析报告

达到 100-300GB 时拆分

Medium

Medium

取决于使用情况

取决于使用情况

Search Administration

1 DB

0.4GB

1GB 日志

1GB 数据

2GB 日志

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

服务应用程序 大小估计建议

User Profile

User Profile Service 应用程序与三个数据库关联:配置文件、同步和社会性标签。

备注

User Profile 数据库存储要求和 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。

App Management

App Management service 应用程序有一个数据库。此数据库较小,不可能有明显增长。它具有最低要求的 IOPS。

Word Automation Services

Word Automation Services 服务应用程序有一个数据库。此数据库较小,不可能有明显增长。它具有最低要求的 IOPS。

PerformancePoint Services

PerformancePoint Services 有一个数据库。此数据库较小,不可能有明显增长。它具有最低要求的 IOPS。

Power Pivot

Power Pivot Service 应用程序有一个数据库。此数据库较小,且没有明显的 I/O 影响。我们建议您使用相同的 IOPS 作为 SharePoint 内容数据库。注意,内容数据库的 I/O 要求明显高于 Power Pivot Service 应用程序数据库。

确定可用性需求

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

可用性要求会显著增加存储需求。有关详细信息,请参阅为 SharePoint Server 创建具有高可用性的体系结构和策略。另外,请参阅 SQL Server 2012 白皮书 AlwaysOn Architecture Guide: Building a High Availability and Disaster Recovery Solutions by Using AlwaysOn Availability Groups(AlwaysOn 体系结构指南:使用 AlwaysOn 可用性组构建高可用性和灾难恢复解决方案)。

选择 SQL Server 版本

对于 SharePoint Server 2016,建议考虑在 SQL Server 2014 Service Pack 1 (SP1) 企业版、SQL Server 2016 或 SQL Server 2017 RTM 上运行环境,以利用这些版本提供的附加性能、可用性、安全性和管理功能。若要详细了解这些版本的优势,请参阅 SQL Server 2014 各个版本支持的功能SQL Server 2016 的各版本和支持的功能SQL Server 2017 的各版本和支持的功能

对于 SharePoint Server 2013,建议考虑在 SQL Server 2008 R2 Service Pack 1 (SP1)、SQL Server 2012 或 SQL Server 2014 的企业版本上运行你的环境,以利用这些版本提供的其他性能、可用性、安全性和管理功能。有关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 2014 适用的备份压缩 (SQL Server),以及 SQL Server 2016 和 SQL Server 2017 RTM 适用的备份压缩 (SQL Server)

    备注

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

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

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

    备注

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

  • 远程 BLOB 存储   若要利用与每个内容数据库关联的文件之外的数据库或位置的远程 BLOB 存储,必须对 SharePoint Server 2016 使用 SQL Server 2014 (SP1)、SQL Server 2016 或 SQL Server 2017 RTM 企业版,并对 SharePoint Server 2013 使用 SQL Server 2008 R2 SP1 或 SQL Server 2012 企业版。

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

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

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

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

  • Microsoft Power Pivot for SharePoint  允许用户在自动刷新这些分析时,共享和协作用户生成的数据模型和 Excel Online 中的分析。你必须具有 Office Online,才能将 Excel Online 与 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 以及 UNRESOLVED_TOKEN_VAL(sql-2014-2nd )Analysis Services (SSAS) Enterprise 和 Business Intelligence Edition 的一部分。

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

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

本节内容:

  • 选择存储体系结构

  • 选择磁盘类型

  • 选择 RAID 类型

选择存储体系结构

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) 或闪存盘

    有关将固态硬盘用于 SQL Server 存储的信息,请参阅 SQL Server PRO 文章在 SQL Server 存储解决方案中使用固态磁盘

选择 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 的硬件和软件要求

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

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

  • 使用 SQL Server 镜像。

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

了解网络拓扑要求

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

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

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

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

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

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

    备注

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

配置 SQL Server

以下各节介绍如何规划为 SharePoint Server 配置 SQL 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 2014 (SP1)、SQL Server 2016、SQL Server 2017 RTM 和 SQL Server 2008 R2 SP1 和 SQL Server 2012 事务日志。

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

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

    1. Tempdb 数据文件和事务日志

    2. 数据库事务日志文件

    3. 搜索数据库,除了搜索管理数据库

    4. 数据库数据文件

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

  • 测试和客户数据显示,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 的软件边界和限制中的“内容数据库限制”部分。

我们通常建议网站集不应超过 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 子系统。当一个或多个组件变慢或超载时,应根据当前和预计工作负载分析相应策略。有关详细信息,请参阅适用于 SQL Server 2014 (SP1) 的监视和优化性能,以及适用于 SQL Server 2016 和 SQL Server 2017 RTM 的监视和优化性能

下节列出一些性能计数器,我们建议您用其监视在 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,则表示存在瓶颈,应进行调查。这意味着,对于由 4 个磁盘组成的逻辑单元 (LUN),可以接受的最大值为 8。瓶颈会造成工作积压,这些工作积压会扩展到正在访问磁盘的当前服务器之外,从而导致用户长时间等待。可以通过以下方法来解决瓶颈:向 RAID 阵列添加更多的磁盘,用速率更快的磁盘替换现有磁盘或将一些数据移动到其他磁盘。

  • Logical Disk: Avg. Disk Queue Length   此计数器显示在采样间隔期间为选定磁盘排队的读写请求的平均数。此规则指明,每个心轴的未完成读写请求不应超过 2 个,但由于存储虚拟化和各个配置间的 RAID 级别差异,导致难以测量此请求数。请查找既大于平均磁盘队列长度又大于平均磁盘延迟的情况。此组合可指示存储阵列缓存使用过度或与其他应用程序共享心轴会影响性能。

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

    • Logical Disk: Avg. Disk sec/Read   此计数器显示对磁盘进行读取操作所花费的平均时间(以秒为单位)。在经良好调整的系统上,对于日志,理想值为 1 到 5 毫秒(在缓存阵列上,最好为 1 毫秒);对于数据,理想值为 4 到 20 毫秒(最好是小于 10 毫秒)。在高峰期会出现更长的延迟,但如果定期出现较高的值,则应调查其原因。

    • Logical Disk: Avg. Disk sec/Write   此计数器显示对磁盘进行写入操作所花费的平均时间(以秒为单位)。在经良好调整的系统上,对于日志,理想值为 1 到 5 毫秒(在缓存阵列上,最好为 1 毫秒);对于数据,理想值为 4 到 20 毫秒(最好是小于 10 毫秒)。在高峰期会出现更长的延迟,但如果定期出现较高的值,则应调查其原因。

    在将 RAID 配置与 **Logical Disk: Avg. Disk Bytes/Read   ** 或 Logical 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 × writes)] / 2

    RAID 5

    I/Os per disk = [reads + (4 × writes)] / number of disks

    RAID 10

    I/Os per disk = [reads + (2 × 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 值:(80 + (2 × 70))/2 = 110

    可使用以下公式计算磁盘队列长度: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 性能、可用性和安全性。

See also

SharePoint Server 2016 环境中的 SQL Server 概述
优化 SharePoint Server 2013 的性能
SharePoint Server 服务器场中 SQL Server 的最佳实践
规划规划在 SharePoint Server 2013 的性能
SharePoint Server 2013 的容量管理和大小调整
SharePoint Server 2013 的容量规划

SharePoint Server 2013 环境中的 SQL Server 概述