三種WCF性能計數(shù)器級別依次分析
WCF性能計數(shù)器對于剛剛接觸WCF框架不久的朋友來說可能對其了解不是太深入。對于這一性能計數(shù)器,我們可以將WCF性能計數(shù)器級別分為三個不同的級別,分別是:服務、終結點和操作。#t#
可以使用 WMI 檢索性能計數(shù)器實例的名稱。例如,
通過 WMI Service實例的“CounterInstanceName”屬性可獲得服務計數(shù)器實例的名稱。
通過 WMI 終結點實例的“CounterInstanceName”屬性可獲得終結點計數(shù)器實例的名稱。
通過 WMI 終結點實例的“GetOperationCounterInstanceName”方法可獲得操作計數(shù)器實例的名稱。
有關 WMI 的更多信息,請參見使用 Windows Management Instrumentation 進行診斷。
WCF性能計數(shù)器級別之服務性能計數(shù)器
服務性能計數(shù)器將服務行為作為整體來進行衡量,可用于診斷服務整體性能。如果使用性能監(jiān)視器查看,可以在 ServiceModelService 3.0.0.0 性能對象下找到服務性能計數(shù)器。使用以下模式命名計數(shù)器實例:
ServiceName@ServiceBaseAddress服務范圍內(nèi)的計數(shù)器是從終結點集合中的計數(shù)器聚合來的。
創(chuàng)建新的 InstanceContext 時,用于創(chuàng)建服務實例的性能計數(shù)器將遞增。請注意,即使在(通過現(xiàn)有服務)收到非激活消息時,或在從一個會話連接到實例、結束會話然后從其他會話重新進行連接時,也將創(chuàng)建新的 InstanceContext。
WCF性能計數(shù)器級別之終結點性能計數(shù)器
使用終結點性能計數(shù)器可以查看反映終結點如何接受消息的數(shù)據(jù)。使用性能監(jiān)視器查看時,可在 ServiceModelEndpoint 3.0.0.0 性能對象下找到終結點性能計數(shù)器。使用以下模式命名計數(shù)器實例:
(ServiceName).(ContractName)@(endpoint listener address)數(shù)據(jù)與為單個操作收集的數(shù)據(jù)類似,但它只在終結點之間聚合。
終結點范圍內(nèi)的計數(shù)器是從操作集合中的計數(shù)器聚合來的。
注意:
如果兩個終結點具有相同的協(xié)定名稱和地址,它們將映射到同一個計數(shù)器實例中。
WCF性能計數(shù)器級別之操作性能計數(shù)器
如果使用性能監(jiān)視器查看,可以在 ServiceModelOperation 3.0.0.0 性能對象下找到操作性能計數(shù)器。每個操作都有一個單獨的實例。也就是說,如果給定的協(xié)定具有 10 個操作,則有 10 個操作計數(shù)器實例與該協(xié)定相關聯(lián)。對象實例按下面的模式命名:
(ServiceName).(ContractName).(OperationName)@(first endpoint listener address)使用此計數(shù)器可以衡量調(diào)用的使用方式以及操作的執(zhí)行情況。
當計數(shù)器在多個范圍內(nèi)可見時,從范圍的較高一級收集到的數(shù)據(jù)會與從范圍的較低一級收集到的數(shù)據(jù)相聚合。例如,終結點處的 Calls 表示終結點內(nèi)所有操作調(diào)用的總和;服務處的 Calls 表示對服務內(nèi)所有終結點的所有調(diào)用的總和。
注意:
如果一個協(xié)定上有兩個操作名稱,則只能為這兩個操作獲取一個計數(shù)器實例。