运行状况监控工具(Windows Server AppFabric 缓存)

本部分介绍用于监视 Windows Server AppFabric 缓存群集运行状况的各种工具以及可用的命令。 这些工具如下。

  • 性能监视器

  • Windows 事件跟踪 (ETW)

  • System Center Operations Manager

  • Windows PowerShell

性能监视器

AppFabric 缓存功能安装多个性能监视器计数器。 有关可用的计数器的详细信息,请参阅 AppFabric 缓存的性能计数器。 您可以观察或记录某些计数器值来确定典型缓存群集行为的基准。 例如,在 AppFabric Caching:Cache 类别中,您可能会观察到 Total Client Requests / sec 值保持在一定的范围内,该范围会随着时间而改变。 您可以使用该基准来确定向可能有必要添加其他缓存主机的缓存群集增加客户端请求的趋势。

有关使用性能监视器的一般信息,请参阅使用性能监视器

Windows 事件跟踪 (ETW)

AppFabric 缓存功能使用 Windows 事件跟踪 (ETW) 来提供与缓存群集有关的状态和错误信息。 可以使用事件查看器来检查 AppFabric 缓存功能的 ETW 日志。

  1. 在缓存主机上打开事件查看器。 有关如何启动事件查看器的说明,请参阅启动事件查看器

  2. 在左导航窗格中,展开“应用程序和服务日志”文件夹。

  3. 然后展开“Microsoft”、“Windows”和“Application Server-System Services”。

  4. 选择“管理”日志。

管理 日志包含信息更新,如何时 AppFabric 缓存服务启动或停止。 还包含警告和错误。 请注意,这些日志可能包含来自其他 AppFabric 功能(如托管和监控)的事件。 可以选择将日志筛选为仅 Micrsofot-Windows Server AppFabric Caching 源,以侧重与 AppFabric 缓存功能相关的事件。

Application Server-System Services 文件夹也包含一个操作日志。 默认情况下,该日志处于禁用状态。 要启用该日志,请右键单击导航窗格中的“操作” 日志,然后单击“启用日志”。 该操作日志包含其他事件,如内存不足的情况。

当评估缓存群集的运行状况时,要检查属于群集的每个缓存主机上的事件日志,这一点非常重要。 一个缓存主机出现问题可能会对整个缓存群集产生不利影响。

事件查看器非常有用,可定期监视缓存群集的运行状况。 但是,当解决错误时,可能会获得有关缓存群集活动的更加详细的日志。 可以使用 tracelog.exe 工具来执行该操作。 tracelog.exe 工具从命令行创建一个详细的 ETL 跟踪日志。 可以作为 Windows 软件开发工具包的一部分下载 tracelog 实用工具。 以下命令开始记录到 cachedebugtrace.etl 文件:

tracelog -start debugtrace -f cachedebugtrace.etl -guid "C:\Windows\System32\AppFabric\Manifests\ProviderGUID.txt" -level 5 -cir 512

以下命令停止记录:

tracelog -stop debugtrace

以下命令将日志 cachedebugtrace.etl 文件转换为名为 cachedebugtrace.csv 的文本文件。

tracerpt .\cachedebugtrace.etl -o cachedebugtrace.csv -of CSV

备注

尽管 traceprt 工具允许您查看 tracelog 生成的日志文件的内容,但是您可能需要使用 Microsoft 支持才能完全解释信息。

System Center Operations Manager

可以使用 System Center Operations Manager 来监视 AppFabric 缓存群集的运行状况。 有关详细信息,请参阅用于 Operations Manager 2007 的 Windows Server AppFabric 管理包

Windows PowerShell

有多个 Windows PowerShell 命令可指出缓存群集的当前状态和运行状况。 本部分演示如何使用以下命令。

  • Get-CacheHost

  • Get-CacheClusterHealth

  • Get-CacheStatistics

请注意,这些命令提供基于缓存群集当前状态的动态信息。 使用以下命令通常还可以查看配置详细信息: Get-CacheConfigGet-CacheHostConfigExport-CacheClusterConfig。 已在常规缓存群集管理任务(Windows Server AppFabric 缓存)部分中介绍了这些命令。

备注

有关如何入门 Windows PowerShell 的详细信息,请参阅常规缓存群集管理任务(Windows Server AppFabric 缓存)。 有关完整的命令列表,请参阅将 Windows PowerShell 与 AppFabric 缓存结合使用

Get-CacheHost

使用不带任何参数的 Get-CacheHost 命令可快速查看缓存群集中缓存主机的状态。 当群集中的一个或多个缓存主机未运行时,可能会发生某些问题。 例如,考虑来自 Get-CacheHost 的以下输出。

PS C:\> Get-CacheHost

HostName : CachePort      Service Name            Service Status Version Info
--------------------      ------------            -------------- ------------
CacheServer1:22233        AppFabricCachingService UP             1 [1,1][1,1]
CacheServer2:22233        AppFabricCachingService DOWN           1 [1,1][1,1]
CacheServer3:22233        AppFabricCachingService UP             1 [1,1][1,1]

该输出表明群集中有三个缓存主机: CachServer1CacheServer2CacheServer3Service Status 列指出缓存群集正在运行,因为至少有一个缓存主机的状态为 UP。 但是,CacheServer2 当前已停止,且状态为 DOWN。 这可能表明 CacheServer2 出现了问题,您只需使用 Start-CacheHost 命令启动缓存主机。 Get-CacheHost 命令通常是您应该运行以获得缓存群集状态的高级概述的第一个命令。

Get-CacheClusterHealth

使用 Get-CacheClusterHealth 获取有关缓存主机以及这些缓存主机上缓存的运行状况的详细信息。 例如,考虑来自 Get-CacheClusterHealth 命令的以下示例输出。

Cluster health statistics
=========================

HostName = CacheServer1
-------------------------

    NamedCache = default
        Healthy              = 0.00
        UnderReconfiguration = 0.00
        NotPrimary           = 0.00
        NoWriteQuorum        = 0.00
        Throttled            = 25.00

    NamedCache = Cache1
        Healthy              = 0.00
        UnderReconfiguration = 0.00
        NotPrimary           = 0.00
        NoWriteQuorum        = 0.00
        Throttled            = 25.00


HostName = CacheServer2
-------------------------

    NamedCache = Cache1
        Healthy              = 25.00
        UnderReconfiguration = 0.00
        NotPrimary           = 0.00
        NoWriteQuorum        = 0.00
        Throttled            = 0.00

    NamedCache = default
        Healthy              = 25.00
        UnderReconfiguration = 0.00
        NotPrimary           = 0.00
        NoWriteQuorum        = 0.00
        Throttled            = 0.00


Unallocated named cache fractions
---------------------------------

在内部,缓存群集使用分区的概念来组织和管理内存。 Get-CacheClusterHealth 命令的输出中显示的数字即是缓存群集分区总数的百分比。 例如,在 CacheServer2 上,命名缓存 Cache1 使用总分区的 25.00% 并且这些分区都正常运行。 但是,具体百分比并不像这些百分比所在的类别那么重要。 添加多个缓存或缓存主机可能会将 Cache1 从 25.00% 减少到 10.00%,但只要 10.00% 仍然位于 Healthy 类别内,缓存仍然正常运行, 在上面的示例中,注意到 CacheServer1 将两个缓存都显示为 Throttled。 这表明该服务器上存在内存不足的情况。 有关如何解决这个内存不足情况的详细信息,请参阅限制疑难解答(Windows Server AppFabric 缓存)

下表介绍 Get-CacheClusterHealth 输出中的每个类别。

运行状况类别 说明

Healthy

缓存正常运行。 这是所有缓存的目标状态。

UnderReconfiguration

缓存需要重新配置。 这是一个可能有多种原因的内部状态,但它应该是临时的,最终会变为正常运行。

NotPrimary

缓存当前不可用。 当辅助副本未提升为主要副本时可能会发生这种情况。 在此过渡期间,缓存可能临时具有状态 NotPrimary。 该状态通常最终会变为正常运行。

NoWriteQuorum

缓存为只读,因为该缓存无法在辅助缓存主机上创建所需数量的副本。 当缓存启用高可用性选项时 (Secondaries = 1) 会发生这种情况。 在此方案中,群集中必须至少有两个正在运行的缓存主机,一个用于缓存项目的主要副本,一个用于辅助副本。

Throttled

缓存为只读,因为该缓存主机处于限制内存状态。 这表明存在内存不足的情况。

Unallocated named cache fractions 表示尚未分配给特定缓存主机的缓存分区百分比。 当启动缓存群集或者在正在运行的群集上启动或停止缓存主机时通常会出现这种状态。 该状态通常最终会变为正常运行。

Get-CacheStatistics

Get-CacheStatistics Windows PowerShell 命令提供有关缓存内容的基本信息。 以下示例演示如何显示名 Cache1 的缓存的缓存统计信息。

Get-CacheStatistics Cache1

这是来自以上命令的示例输出。

Size         : 12408186
ItemCount    : 1200
RegionCount  : 714
RequestCount : 1200
MissCount    : 1200

以上输出表明 Cache1 中有 1200 个项目,总大小为 12408186 个字节。 有 714 个区域,这些区域可能是用户创建的,也可能是系统创建的。 已有 1200 个请求以及相同数量的丢失。 但是,重要的是不要将 MissCount 视为隔离的问题指示器。 当重新启动缓存群集时,应用程序必须重新填充缓存。 这涉及检查缓存的项目是否存在,这会使 MissCount 递增。 较高的 MissCount 可能表明缓存中的项目已被意外逐出或者缓存项目的过期是太低,但单独使用缓存统计信息无法确认这些情况。 例如,如果您使用 Put 方法添加不在缓存中的某个项目,则会增加 MissCount,但这并不是错误情况。

该命令可以和 Get-CacheConfig 命令一起使用。 例如,如果 Get-CacheStatistics 命令表明 Cache1 具有异常的较大大小 1 GB,则可以使用 Get-CacheConfig 来检查缓存配置以查看逐出和过期设置。

另请参阅

概念

管理缓存群集运行状况(Windows Server AppFabric 缓存)

  2011-12-05