WCF性能计数器对于刚刚接触WCF框架不久的朋友来说可能对其了解不是太深入。对于这一性能计数器,我们可以将WCF性能计数器级别分为三个不同的级别,分别是:服务、终结点和操作。#t#
可以使用 WMI 检索性能计数器实例的名称。例如,
通过 WMI Service实例的“CounterInstanceName”属性可获得服务计数器实例的名称。
通过 WMI 终结点实例的“CounterInstanceName”属性可获得终结点计数器实例的名称。
通过 WMI 终结点实例的“GetOperationCounterInstanceName”方法可获得操作计数器实例的名称。
有关 WMI 的更多信息,请参见使用 Windows Management Instrumentation 进行诊断。
WCF性能计数器级别之服务性能计数器
服务性能计数器将服务行为作为整体来进行衡量,可用于诊断服务整体性能。如果使用性能监视器查看,可以在 ServiceModelService 3.0.0.0 性能对象下找到服务性能计数器。使用以下模式命名计数器实例:
ServiceName@ServiceBaseAddress服务范围内的计数器是从终结点集合中的计数器聚合来的。
创建新的 InstanceContext 时,用于创建服务实例的性能计数器将递增。请注意,即使在(通过现有服务)收到非激活消息时,或在从一个会话连接到实例、结束会话然后从其他会话重新进行连接时,也将创建新的 InstanceContext。
WCF性能计数器级别之终结点性能计数器
使用终结点性能计数器可以查看反映终结点如何接受消息的数据。使用性能监视器查看时,可在 ServiceModelEndpoint 3.0.0.0 性能对象下找到终结点性能计数器。使用以下模式命名计数器实例:
(ServiceName).(ContractName)@(endpoint listener address)数据与为单个操作收集的数据类似,但它只在终结点之间聚合。
终结点范围内的计数器是从操作集合中的计数器聚合来的。
注意:
如果两个终结点具有相同的协定名称和地址,它们将映射到同一个计数器实例中。
WCF性能计数器级别之操作性能计数器
如果使用性能监视器查看,可以在 ServiceModelOperation 3.0.0.0 性能对象下找到操作性能计数器。每个操作都有一个单独的实例。也就是说,如果给定的协定具有 10 个操作,则有 10 个操作计数器实例与该协定相关联。对象实例按下面的模式命名:
(ServiceName).(ContractName).(OperationName)@(first endpoint listener address)使用此计数器可以衡量调用的使用方式以及操作的执行情况。
当计数器在多个范围内可见时,从范围的较高一级收集到的数据会与从范围的较低一级收集到的数据相聚合。例如,终结点处的 Calls 表示终结点内所有操作调用的总和;服务处的 Calls 表示对服务内所有终结点的所有调用的总和。
注意:
如果一个协定上有两个操作名称,则只能为这两个操作获取一个计数器实例。