存储空间直通的性能历史记录

适用于:Windows Server 2022、Windows Server 2019

性能历史记录是一项新功能,使存储空间直通管理员可以轻松访问主机服务器、驱动器、卷、虚拟机等的历史计算、内存、网络和存储度量。 自动收集性能历史记录,并存储在群集上长达一年。

重要

此功能是 Windows Server 2019 中的新增功能。 Windows Server 2016中不可用。

入门

默认情况下,使用 Windows Server 2019 中的存储空间直通收集性能历史记录。 无需安装、配置或启动任何内容。 不需要 Internet 连接,System Center不是必需的,不需要外部数据库。

若要以图形方式查看群集的性能历史记录,请使用Windows Admin Center

Performance history in Windows Admin Center

若要以编程方式查询和处理它,请使用新的 Get-ClusterPerf cmdlet。 请参阅 PowerShell 中的使用情况

收集的内容

为 7 种类型的对象收集性能历史记录:

Types of objects

每个对象类型都有许多系列:例如, ClusterNode.Cpu.Usage 为每个服务器收集。

有关为每个对象类型收集的内容以及如何解释它们的详细信息,请参阅以下子主题:

Object 系列
驱动器 为驱动器收集的内容
网络适配器 为网络适配器收集的内容
服务器 为服务器收集的内容
虚拟硬盘 为虚拟硬盘收集的内容
虚拟机 为虚拟机收集的内容
为卷收集的内容
群集 为群集收集的内容

许多系列跨对等对象聚合到其父对象:例如, NetAdapter.Bandwidth.Inbound 为每个网络适配器单独收集,并聚合到整个服务器;同样 ClusterNode.Cpu.Usage ,聚合到整个群集,依此类而行。

时间范围

性能历史记录存储长达一年,粒度降低。 对于最近的一小时,测量每十秒可用一次。 此后,根据适当的) ,它们通过平均或求和 (智能地合并到更短的粒度序列中。 对于最近的一天,测量每五分钟可用一次:最近一周,每十五分钟一次:等等。

在Windows Admin Center中,可以选择图表右上角的时间范围。

Timeframes in Windows Admin Center

在 PowerShell 中,使用 -TimeFrame 参数。

以下是可用的时间范围:

时间范围 测量频率 保留为
LastHour 每 10 秒 1 小时
LastDay 每 5 分钟 25 小时
LastWeek 每 15 分钟 8 天
LastMonth 每 1 小时一次 35 天
LastYear 每 1 天 400 天

PowerShell 中的用法

使用 Get-ClusterPerformanceHistory cmdlet 在 PowerShell 中查询和处理性能历史记录。

Get-ClusterPerformanceHistory

提示

使用 Get-ClusterPerf 别名保存一些击键。

示例

获取过去一个小时 的虚拟机 MyVM 的 CPU 使用率:

Get-VM "MyVM" | Get-ClusterPerf -VMSeriesName "VM.Cpu.Usage" -TimeFrame LastHour

有关更高级的示例,请参阅已发布 的示例脚本 ,这些脚本提供入门代码来查找峰值、计算平均值、绘制趋势线、运行离群检测等。

指定对象

可以指定管道所需的对象。 这适用于 7 种类型的对象:

管道中的对象 示例
Get-PhysicalDisk Get-PhysicalDisk -SerialNumber "XYZ456" | Get-ClusterPerf
Get-NetAdapter Get-NetAdapter "Ethernet" | Get-ClusterPerf
Get-ClusterNode Get-ClusterNode "Server123" | Get-ClusterPerf
Get-VHD Get-VHD "C:\ClusterStorage\MyVolume\MyVHD.vhdx" | Get-ClusterPerf
Get-VM Get-VM "MyVM" | Get-ClusterPerf
Get-Volume Get-Volume -FriendlyName "MyVolume" | Get-ClusterPerf
Get-Cluster Get-Cluster "MyCluster" | Get-ClusterPerf

如果未指定,则会返回整个群集的性能历史记录。

指定系列

可以使用以下参数指定所需的系列:

参数 示例 列出
-PhysicalDiskSeriesName "PhysicalDisk.Iops.Read" 为驱动器收集的内容
-NetAdapterSeriesName "NetAdapter.Bandwidth.Outbound" 为网络适配器收集的内容
-ClusterNodeSeriesName "ClusterNode.Cpu.Usage" 为服务器收集的内容
-VHDSeriesName "Vhd.Size.Current" 为虚拟硬盘收集的内容
-VMSeriesName "Vm.Memory.Assigned" 为虚拟机收集的内容
-VolumeSeriesName "Volume.Latency.Write" 为卷收集的内容
-ClusterSeriesName "PhysicalDisk.Size.Total" 为群集收集的内容

提示

使用选项卡完成来发现可用的系列。

如果未指定,则返回可用于指定对象的每个系列。

指定时间范围

可以使用参数指定所需的 -TimeFrame 历史记录时间范围。

提示

使用选项卡完成来发现可用的时间范围。

如果未指定,则 MostRecent 返回度量值。

工作原理

性能历史记录存储

启用存储空间直通后不久,将创建大约 10 GB 的卷ClusterPerformanceHistory,并在其中预配了可扩展存储引擎 ((也称为 Microsoft JET) )实例。 此轻型数据库存储性能历史记录,无需任何管理员参与或管理。

Volume for performance history storage

该卷由存储空间提供支持,使用简单的双向镜像或三向镜像复原,具体取决于群集中的节点数。 驱动器或服务器故障后会修复它,就像存储空间直通中的其他任何卷一样。

卷使用 ReFS,但不是群集共享卷 (CSV) ,因此它仅在群集组所有者节点上显示。 除了自动创建,此卷还没有任何特殊之处:可以看到它、浏览它、调整大小或删除它 (不建议) 。 如果出现问题,请参阅 故障排除

对象发现和数据收集

性能历史记录会自动发现相关对象,例如虚拟机、群集中的任何位置并开始流式处理其性能计数器。 计数器将聚合、同步并插入到数据库中。 流式处理持续运行,并针对最小系统影响进行优化。

集合由运行状况服务处理,这是高度可用的:如果正在运行的节点出现故障,它将在群集中的另一个节点上恢复片刻。 性能历史记录可能会短暂失效,但它将自动恢复。 可以在 PowerShell 中运行Get-ClusterResource Health运行状况服务及其所有者节点。

处理度量间隙

当度量合并到更精细的序列中时,如 时间范围中所述,将排除缺失数据的时间段。 例如,如果服务器已关闭 30 分钟,则在接下来的 30 分钟内以 50% 的 CPU 运行,则 ClusterNode.Cpu.Usage 小时的平均记录为 50%, (不是 25% ) 。

扩展性和自定义

性能历史记录是脚本友好的。 使用 PowerShell 直接从数据库拉取任何可用历史记录,以生成自动报告或警报、导出历史记录以安全保存、滚动自己的可视化效果等。有关有用的初学者代码,请参阅已发布 的示例脚本

无法为其他对象、时间范围或系列收集历史记录。

度量频率和保留期当前不可配置。

启动或停止性能历史记录

如何实现启用此功能?

除非默认 Stop-ClusterPerformanceHistory启用性能历史记录。

若要重新启用此功能,请以管理员身份运行此 PowerShell cmdlet:

Start-ClusterPerformanceHistory

如何实现禁用此功能?

若要停止收集性能历史记录,请以管理员身份运行此 PowerShell cmdlet:

Stop-ClusterPerformanceHistory

若要删除现有度量值,请使用 -DeleteHistory 标志:

Stop-ClusterPerformanceHistory -DeleteHistory

提示

在初始部署期间,可以通过将参数Enable-ClusterStorageSpacesDirect设置为-CollectPerformanceHistory$False阻止性能历史记录。

故障排除

cmdlet 不起作用

错误消息(如“Get-ClusterPerf”一词未识别为 cmdlet 的名称),表示该功能不可用或安装。 验证是否已Windows Server Insider Preview 内部版本 17692 或更高版本,是否已安装故障转移群集,并且正在运行存储空间直通。

注意

此功能在Windows Server 2016或更早版本上不可用。

无可用数据

如果图表显示如图所示的“无可用数据”,下面介绍如何进行故障排除:

No data available

  1. 如果新添加或创建了对象,请等待 (最多 15 分钟) 发现该对象。

  2. 刷新页面,或等待下一次后台刷新 (最多 30 秒) 。

  3. 某些特殊对象从性能历史记录中排除-例如,未群集的虚拟机,以及不使用群集共享卷 (CSV) 文件系统的卷。 查看对象类型的子主题,例如 卷的性能历史记录,以获取细化打印。

  4. 如果问题仍然存在,请以管理员身份打开 PowerShell 并运行 Get-ClusterPerf cmdlet。 该 cmdlet 包括用于识别常见问题的故障排除逻辑,例如,如果 ClusterPerformanceHistory 卷缺失,并提供修正说明。

  5. 如果上一步中的命令不返回任何内容,可以尝试重启运行状况服务 (,通过 PowerShell 中运行Stop-ClusterResource Health ; Start-ClusterResource Health来收集性能历史记录) 。

其他参考