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

适用于:Windows Server 2022、Windows Server 2019

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

重要

此功能是 Windows Server 2019 中的新增功能。 它不适用于 Windows Server 2016。

入门

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

若要以图形方式查看群集的性能历史记录,请使用Windows管理中心

Performance history in Windows Admin Center

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

收集的

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

Types of objects

每个对象类型具有多个序列:例如, ClusterNode.Cpu.Usage 针对每个服务器收集 。

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

Object 系列
驱动器 为驱动器收集什么
网络适配器 为网络适配器收集什么
服务器 为服务器收集哪些内容
虚拟硬盘 为虚拟硬盘收集什么
虚拟机 为虚拟机收集什么
为卷收集哪些信息
群集 为群集收集哪些信息

许多序列跨对等对象聚合到其父级:例如,针对每个网络适配器单独收集并聚合到整个服务器;同样聚合到整个群集, NetAdapter.Bandwidth.InboundClusterNode.Cpu.Usage 等等。

时间范围

性能历史记录最多存储一年,粒度递减。 最近一小时,每 10 秒提供一次度量。 此后,它们通过 (求平均值或求和来智能地) 合并为跨越更多时间) 更精细的序列。 最近一天,每五分钟提供一次度量;最近一周,每 15 分钟一次;等等。

在Windows管理中心中,可以选择图表右上角的时间范围。

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" 为群集收集哪些信息

提示

使用 Tab 键完成来发现可用系列。

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

指定时间范围

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

提示

使用 Tab 键完成来发现可用的时间范围。

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

工作原理

性能历史记录存储

启用 存储空间 Direct 后,将创建大约 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

提示

在初始部署期间,可以通过将 的 参数设置为 来防止性能 -CollectPerformanceHistoryEnable-ClusterStorageSpacesDirect 历史记录启动 $False

疑难解答

cmdlet 不起作用

类似"'Get-ClusterPerf'一词无法识别为 cmdlet 名称"的错误消息表示该功能不可用或未安装。 验证是否Windows Server Insider Preview 内部版本 17692 或更高版本,是否安装了故障转移群集,以及是否正在运行 存储空间 Direct。

注意

此功能在或更早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 性能历史记录。

其他参考