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