Microsoft HPC Pack 的数据库容量规划和优化

Microsoft HPC Pack 中的 Windows HPC 群集管理功能依赖于多个Microsoft SQL Server 数据库来支持管理、作业计划、诊断、报告和监视功能。 在服务器上安装 HPC Pack 以创建头节点时,默认设置将安装 Microsoft SQL Server 的 Express 版本(如果未检测到其他版本的 SQL Server),并在头节点上创建必要的数据库。 Express 版本没有额外的许可费用,并且包括为概念证明或开发群集以及小型生产群集提供现成的体验。 根据群集的大小、吞吐量和要求,可以在头节点上安装不同版本的 SQL Server,或在远程服务器上安装数据库。 本文档中的信息旨在帮助确定适用于群集的数据库配置和其他优化选项。

在本主题中:

Microsoft HPC Pack 和 Microsoft SQL Server 适用的版本

本主题中的指南适用于下表中列出的 HPC Pack 和 SQL Server 版本。

Microsoft HPC Pack 的版本 群集数据库 支持的 Microsoft SQL Server 版本 备注
HPC Pack 2016 - HPCManagement
- HPCScheduler
- HPCReporting
- HPCDiagnostics
- HPCMonitoring
- SQL Server 2014 及更高版本
- Azure SQL 数据库
- SQL Server Express 版本将每个数据库限制为 10 GB。
HPC Pack 2012 R2 和 HPC Pack 2012 - HPCManagement
- HPCScheduler
- HPCReporting
- HPCDiagnostics
- HPCMonitoring
- SQL Server 2008 R2 及更高版本
- Azure SQL 数据库
- SQL Server Express 版本将每个数据库限制为 10 GB。
- 仅 HPC Pack 2012 R2 Update 3 内部版本 4.5.5194 或更高版本支持 Azure SQL 数据库

Microsoft HPC Pack 中数据库设置的基本选项

本部分提供有关使用 HPC Pack 进行数据库设置的三个基本选项的背景信息。 有关为部署选择合适选项的指导,请参阅本主题中的 为群集选择正确的 SQL Server 版本

在头节点上 SQL Server Express

这是现用的体验。 这通常用于概念证明或开发群集,或用于小型生产群集。 如上一部分中的表中所示,如果 HPC Pack 版本支持 SQL Server 2016 Express、SQL Server 2014 Express 或 SQL Server 2012 Express,则数据库大小高达 10 GB。 此设置的基本步骤如下所示:

  1. 在服务器上安装 HPC Pack 以创建头节点。

  2. (可选)在安装向导中指定数据库和日志文件位置(或接受默认值)。

  3. SQL Server Express 会自动安装,并且会自动创建 HPC 数据库。

  4. 部署节点。

头节点上 SQL Server Standard

这是中等大小的群集的基本配置。 SQL Server Standard Edition(或其他完整版本,而不是 Compact)允许更大的数据库和其他管理功能来支持更多节点和更高的作业吞吐量。 此设置的基本步骤如下所示:

  1. 在将充当头节点的服务器上安装 HPC Pack 版本支持的 SQL Server Standard 版本。

  2. 在服务器上安装 HPC Pack 以创建头节点。

  3. (可选)在安装向导中指定数据库和日志文件位置(或接受默认值)。

  4. 会自动创建 HPC 数据库。

  5. (可选)使用 SQL Server Management Studio 根据需要优化数据库。

  6. 部署节点。

远程数据库(SQL Server Standard 或 SQL Server Express)

在远程服务器上安装一个或多个 HPC 数据库是针对大型群集或配置为头节点高可用性的群集的建议配置。 有关详细信息,请参阅 使用远程数据库部署 HPC Pack 群集的分步指南。 对于高可用性头节点,通常使用标准版 SQL Server 来支持数据库的高可用性(这不同于 HPC 管理服务的高可用性)。 有关详细信息,请参阅 HPC Pack 2016入门指南。 此设置的基本步骤如下所示:

  1. 在远程服务器上安装 HPC Pack 版本支持的 SQL Server Standard 版本。

  2. 使用 SQL Server Management Studio 手动创建远程 HPC 数据库并根据需要进行优化。

  3. 根据 HPC Pack 版本的要求,在运行 SQL Server 的远程服务器上执行其他配置步骤。

  4. 在服务器上安装 HPC Pack 以创建头节点。

  5. 在安装向导中,指定远程数据库的连接信息。

  6. 部署节点。

为群集选择正确的 SQL Server 版本

以下一般准则可帮助你确定要用于群集的 SQL Server 版本。 节点和作业吞吐量数字仅用于一般准则,因为性能将因为群集选择的硬件和拓扑以及群集支持的工作负荷而异。

如果满足以下任一条件,请考虑使用 SQL Server 的标准版本(或其他完整版本,而不是 Compact):

  • 群集具有许多节点。 节点属性、配置、指标和性能历史记录等信息存储在数据库中。 较大的群集在数据库中需要更多的空间。 作为一般准则,Express 版本足以使用 SQL Server Express 2012 或最多 128 个具有更高版本的 SQL Server Express 的 64 个节点。

  • 群集支持非常高的作业吞吐量速率-例如,每天超过 10,000 个任务或子任务。 每个作业、任务和子任务都有数据库中的条目,用于存储属性和分配信息和历史记录。 此数据的默认保留期为 5 天。 可以调整保留期以减少容量要求。 请参阅本主题 HPC 数据保留设置。

  • 群集配置为头节点的高可用性,并且还希望为 SQL Server 配置高可用性。

  • 需要长时间将作业和任务数据存储在 HPCScheduler 数据库中,并将超出 SQL Server Express 版本施加的数据库限制。

  • 大量使用 HPCReporting 数据库,并可能使用数据扩展性功能进行自定义报告。 有关禁用报告扩展性并减少报告数据库的大小要求的信息,请参阅本主题中的 HPC 数据保留设置

  • 需要 SQL Server Management Studio 工具提供的其他可靠性、性能和灵活性(包括对维护计划的支持)。 例如,SQL Server Standard 版本提供以下功能(等等),对 HPC 群集管理员有帮助:

    • 无限制的数据库大小

    • 支持高可用性配置

    • 数据库缓存的 RAM 使用率不受限制

    注意

    SQL Server Management Studio 不会自动包含在 SQL Server 的 Express 版本中。 如果要更改 HPC 数据库的设置,可以单独下载它。

  • 你正在计划大量部署 Windows Azure 节点,例如,数百个 Windows Azure 角色实例或更多。 有关大型 Windows Azure 节点部署的详细信息,请参阅 使用 Microsoft HPC Pack大规模部署 Windows Azure 节点的最佳做法。

配置和优化最佳做法

本部分包括一些有关性能优化 HPC 数据库的准则和最佳做法。 下面列出了大型群集的示例配置设置。 在某些情况下,这些设置与 HPC Pack 默认配置的设置大相径庭。 有关这些选项的详细信息,请参阅以下各节。

  • 在具有三个拼盘(物理磁盘)的服务器上配置:

    • 专用拼盘上的操作系统。

    • 专用拼盘上的群集数据库。

    • 专用拼盘上的群集数据库日志文件。

  • 在 SQL Server Management Studio 中配置:

    • HPCManagement 数据库:初始大小为 20 GB,增长速率为 100%

    • HPCManagement 数据库日志:初始大小为 2 GB

    • HPCScheduler 数据库:初始大小为 30 GB,增长速率为 0%

      注意

      在大型群集中,为了防止由于 HPCScheduler 数据库接近其大小限制而意外关闭 HPC 作业计划程序,建议不要为此数据库配置自动增长设置。

    • HPCScheduler 数据库日志:初始大小为 2 GB

    • HPCReporting 数据库:初始大小为 30 GB,增长速率为 100%

    • HPCReporting 数据库日志:初始大小为 2 GB

    • HPCDiagnostics 数据库和日志:使用默认值

    • HPCMonitoring 数据库:1 GB,增长速度为 10%

      HPCMonitoring 数据库日志:使用默认值

      注意

      从 HPC Pack 2012 开始配置 HPCMonitoring 数据库。

  • 对于托管在头节点上的数据库,在 SQL Server Management Studio 中,将数据库的内存配置为节点上大约一半的物理内存。 例如,对于具有 16 GB 物理内存的头节点,请配置数据库大小 8-10 GB。

  • 对于托管在头节点上的数据库,在 SQL Server Management Studio 中,将并行化标志设置为 1(默认值为 0)。

SQL Server 恢复模式和磁盘空间要求

默认情况下,在 SQL Server Standard 版本中,每个数据库的 SQL Server 恢复模式设置为 完整。 由于需要手动维护,此模型可能会导致日志文件增长很大。 若要回收日志空间并保持磁盘空间需求较小,可以将每个数据库的恢复模式更改为 简单。 选择的恢复模式取决于恢复要求。 如果使用 完整 模型,请确保为日志文件规划足够的空间,并了解常规维护要求。 有关详细信息,请参阅 恢复模式概述

注意

如果选择 完整 模型,因为 HPC 数据库必须保持逻辑一致,可能需要实施特殊过程来确保这些数据库的可恢复性。 有关详细信息,请参阅 恢复包含标记事务的相关数据库

数据库和日志文件的初始大小调整和自动增长

自动增长意味着当数据库或日志文件耗尽空间时,它将自动按预定义百分比(由自动增长参数定义)来增加其大小。 在自动增长过程中,数据库被锁定。 这会影响群集操作和性能,并可能导致操作死锁和超时。 预先调整数据库的大小有助于避免这些性能问题,并通过配置更大的自动增长百分比来降低自动增长操作的频率。 但是,较大的初始文件大小加上自动增长设置,接近 100% 可能需要大量的时间才能增加数据库。 请务必了解磁盘子系统的性能,以确定长时间不阻止数据库访问的值。

每个数据库都有一个关联的日志文件。 还可以优化日志文件的初始大小和自动增长设置。

下表显示了数据库和日志文件(无论 SQL Server 版本如何)的默认配置:

HPC 数据库和日志 初始大小(MB) 自动增长
HPCManagement 数据库:1024

日志:128
数据库:50%

日志:50%
HPCScheduler 数据库:256

日志:64
数据库:10%

日志:10%
HPCReporting 数据库:128

日志:64
数据库:10%

日志:10%
HPCDiagnostics 数据库:256

日志:64
数据库:10%

日志:10%
HPCMonitoring 注意:从 HPC Pack 2012 开始配置 HPCMonitoring 数据库 数据库:256

日志:138
数据库:10%

日志:10%

例如,下表列出了可能适用于具有数百个或更多节点的群集的初始大小和自动增长设置。

注意

此表中的初始大小以 GB(GB),而不是兆字节(MB)表示,如上表所示。

HPC 数据库和日志 初始大小(GB) 自动增长
HPCManagement 数据库:20

日志:2
数据库:100%

日志:10%
HPCScheduler 数据库:30

日志:2
数据库:0%

日志:10%
HPCReporting 数据库:30

日志:2
数据库:100%

日志:10%
HPCDiagnostics 数据库:默认值

日志:默认值
数据库:默认值

日志:默认值
HPCMonitoring 数据库:1

日志:默认值
数据库:默认值

日志:默认值

以下屏幕截图说明了 SQL Server Management Studio 中的 HPC 数据库,以及可用于配置数据库的初始大小和自动增长设置的数据库属性对话框。

SQL Management Studio 中配置 HPC 数据库

数据库和日志文件位置

可以通过在单独的拼盘(物理磁盘)上创建数据库(物理磁盘)而不是日志文件来提高性能。 这适用于头节点上的数据库和远程数据库。 对于头节点上的数据库,可以在安装期间指定数据库和日志文件位置(在安装向导中)。 理想情况下,将系统分区、数据和日志放在单独的拼盘上。

如果使用了大量报告,请考虑将 HPCReporting 数据库移动到单独的拼盘。

有关移动数据库的信息,请参阅 使用分离和附加(Transact-SQL)移动数据库

SQL Server 实例设置

若要最大程度地减少内存分页,请确保 SQL Server 实例有足够的内存分配。 可以通过 SQL Server Management Studio 在实例的服务器属性中设置 SQL Server 实例的内存。 例如,如果数据库位于内存为 16 GB 的头节点上,则可能需要为 SQL Server 分配 8-10 GB。

若要最大程度地减少 SQL Server 进程与 HPC 进程之间的头节点上的核心争用,请将 SQL Server 实例的并行化标志设置为 1。 默认情况下,标志设置为 0,这意味着 SQL 将使用的内核数没有限制。 通过将 SQL Server 进程设置为 1,可将 SQL Server 进程限制为 1 核。

HPC 数据保留设置

HPCManagement 数据库

从 HPC Pack 2012 R2 Update 1 开始,群集管理员能够指定服务开始存档 HPCManagement 数据库中的操作日志数据的天数,以及已存档操作日志数据的保留天数。 例如,若要每隔 7 天设置操作日志存档,并在保留后删除 180 天,请以管理员身份运行 HPC Powershell 并键入以下 cmdlet:

Set-HpcClusterProperty –OperationArchive 7

Set-HpcClusterProperty –OperationRetention 180

HPCScheduler 数据库

作业属性、分配和历史记录存储在 HPCScheduler 数据库中。 默认情况下,有关已完成作业的数据将保留五天。 作业记录保留期(TtlCompletedJobs) 确定存储以下记录的数据时长:

  • HPCScheduler 数据库中已完成的作业(已完成失败已取消)的数据。

  • 存储在 Runtime$ 共享中的 SOA 通用数据。

  • HPCDiagnostics 数据库中的诊断测试结果和数据。

  • 使用 MSMQ 存储的中转站节点存储的已完成持久会话的消息。

配置 状态的作业不会从数据库中删除。 作业所有者或群集管理员(或者以其他方式完成)必须取消这些作业,然后根据作业历史记录策略将其删除。

可以使用 Set-HpcClusterProperty cmdlet 来配置此属性。 例如,若要将作业记录保留期设置为三天,请以管理员身份运行 HPC PowerShell 并键入以下 cmdlet:

Set-HpcClusterProperty –TtlCompletedJobs 3

还可以在 HPC 作业计划程序配置对话框的 作业历史记录 设置中配置此属性。

HPCReporting 数据库

群集的历史数据(例如群集利用率、节点可用性和作业统计信息)聚合并存储在 HPCReporting 数据库中。 数据库还会存储有关启用数据扩展性时可用于支持自定义报告的作业的原始数据(默认启用)。 例如,可以创建自定义退款报表,这些报告对应于组织使用的收费方法。 有关使用原始数据进行自定义报告的信息,请参阅 报告扩展性分步指南

下表描述了用于控制原始数据的数据扩展性和保留期的群集属性。 这些设置不会影响用于内置报表的聚合数据。 可以使用 Get-HPCClusterProperty cmdlet 查看属性的值,并使用 Set-HpcClusterProperty cmdlet 设置值。 例如,若要禁用数据扩展性,请以管理员身份运行 HPC PowerShell 并键入以下 cmdlet:

Set-HpcClusterProperty –DataExtensibilityEnabled $false

properties 说明
DataExtensibilityEnabled 指定群集是否存储有关作业、节点的自定义报告以及作业分配给节点的信息。

True 表示群集存储有关作业、节点的自定义报告以及作业分配给节点的信息。 False 表示群集不存储此信息。 默认值为 True。
DataExtensibilityTtl 指定 HPCReporting 数据库应存储有关作业和节点的所有信息的天数,但作业分配给节点除外。 此参数的默认值为 365。
AllocationHistoryTtl 指定 HPCReporting 数据库应存储有关作业分配给节点的信息的天数。 此参数的默认值为 5。
ReportingDBSize 包含 HPCReporting 数据库的当前大小。 此值是包含大小度量单位的字符串。 此参数为只读。

若要查看此属性,运行 HPC PowerShell 的计算机必须能够访问 HPCReporting 数据库。 有关启用远程数据库访问的详细信息,请参阅 使用远程数据库部署群集的分步指南

若要估计群集中 HPCReporting 数据库所需的大小,请参阅 估算报表数据库的大小

HPCDiagnostics 数据库

诊断测试运行中的信息和结果存储在 HPCDiagnostics 数据库中。 作业记录保留期(TtlCompletedJobs)确定存储有关已完成测试运行的数据的时间。

HPCMonitoring 数据库

HPC Monitoring Server 服务和 HPC Monitoring Client Service 从群集节点收集和聚合的性能计数器数据存储在 HPCMonitoring 数据库中。

性能计数器数据按分钟、小时和天聚合。 节点性能计数器数据的数据保留期由下表中的群集属性定义。 可以使用 Set-HpcClusterProperty cmdlet 来配置这些属性。

properties 说明
MinuteCounterRetention 指定分钟性能计数器数据的保留期(以天为单位)。 默认值为 3 天。
HourCounterRetention 指定小时性能计数器数据的保留期(以天为单位)。 默认值为 30 天。
DayCounterRetention 指定日期性能计数器数据的保留期(以天为单位)。 默认值为 180 天。

可以根据节点数、性能计数器数和保留期估算 HpcMonitoring 数据库所需的大小。 例如,使用默认 MinuteCounterRetention 3 天(4,320 分钟)和 27 个性能计数器,每个性能值条目需要大约 40 字节,每个节点需要:

4,320 x 27 x 40 = 4,665,600 字节,或大约 5 MB。

对于具有 1000 个节点的群集,需要大约 5 GB 的存储。

维护指南

典型的 SQL Server 维护计划涵盖以下内容:

  • 数据库备份

  • 一致性检查

  • 索引碎片整理

可以通过通过维护计划使用 SQL Server Management Studio 和碎片整理索引来监视索引碎片。

我们通常建议在 250,000 个作业或一个月(以较短者为准)之后重新生成索引(如果不是更频繁)。 执行一致性检查和备份的频率取决于业务需求。 建议仅在几乎没有用户活动的情况下运行维护,最好是在计划停机期间(尤其是对于较大的群集),因为它可能会严重影响作业吞吐量和用户体验。

有关数据库维护最佳做法的信息,请参阅 有效数据库维护的顶级提示。

注意

有关备份和还原 HPC 数据库的重要信息,请参阅 备份和还原 Windows HPC Server

另请参阅