簡體   English   中英

如何在IIS中使用性能計數器和WCF服務?

[英]How to work with Performance counters and WCF service in IIS?

嗨,

我在IIS7中有一個WCF服務,通過TCP(WAS)與winform應用程序通信,現在我需要監視性能。

我已將此添加到web.config文件中:

  <system.serviceModel>
    <diagnostics performanceCounters="All" />

打開性能監視器后,我使用winform運行幾個測試,以確保服務已激活。

然后我打開性能監視器(實時),右鍵單擊並添加計數器。 我展開了ServiceModelService 4.0.0.0並選擇了Calls和Calls Duration,我還選擇了我在所選對象實例列表框中聲明的服務(svc),然后單擊Add按鈕。

在ServiceModelOperation 4.0.0.0下選擇“呼叫和呼叫持續時間”時,是否沒有要選擇的實例或操作? ServiceModelEndpoint 4.0.0.0也是如此?

單擊“確定”時,將添加兩個計數器(ServiceModelService)。

然后我單擊“解凍顯示”並啟動我的winform應用程序,它會進行幾次調用,但是我在性能監視器中看不到任何內容。 我試圖右鍵單擊其中一個性能計數器並選擇“Scale Selected Counter”但這沒有任何作用?

目標只是看看WCF服務的執行情況(速度,持續時間,數量,連接等),檢查單個操作也很棒。

請幫忙!

注意:這是我試圖遵循的文章: http//dkochnev.blogspot.com/2011/06/wcf-framework-40-monitoring-service.html

看起來這可能是性能計數器如何工作的錯誤(或設計功能)。 經過一番討論,我在MSDN論壇上發現了這個:

我也有同樣的問題。 在命名計數器實例時,Microsoft似乎會截斷操作名稱的尾部。 他們用某種2位數的基數10幻數替換截斷的部分。 我猜這是一個哈希,但是誰知道它是如何生成的。 問題是,這個數字不能保證唯一,並且可能導致計數器名稱發生沖突。 如果發生這種碰撞,它似乎會導致所有端點和操作計數器消失(至少對我而言)。

我有兩個名為UpdateMarkupChunk和UpdateMarkupCancel的方法。 如果我將一個或另一個注釋掉以使另一個不存在,則它們都會在計數器實例名稱中解析為UpdateMarkupC53。 當我同時對它們進行評論時,ServiceModelEndpoint或ServiceModelOperation都沒有顯示任何計數器實例。

你可以為微軟推薦一個解決方法嗎? 我有一個我想要監控的生產服務,並且不能更改操作名稱。

微軟回應:

你是對的。 這種行為是設計的。 性能計數器實例名稱的長度有限制。

使用性能監視器(Perfmon.exe)查看時,可以在ServiceModelOperation 4.0.0.0性能對象下找到操作性能計數器。 每個操作都有一個單獨的實例。 也就是說,如果給定的合同有10個操作,則10個操作計數器實例與該合同相關聯。 使用以下模式命名對象實例:

(ServiceName)。(ContractName)。(OperationName)@(第一個端點偵聽器地址)

當Windows Communication Foundation(WCF)計數器實例名稱超過最大長度時,WCF將使用哈希值替換實例名稱的一部分。

所以看起來由於這個最大名稱限制,當只有一個兩位數的哈希后綴時,哈希沖突的可能性很大,並且當一個計數器的兩個實例具有相同的名稱時,它會清除整個計數器,它實際上並不是可能。

這有點令人沮喪。 因此,除非Microsoft修復此問題(長哈希值,或者通過perf計數器進行更好的沖突處理),或者提供合適的解決方法,否則我們將失明。

WCF服務包括可以使用Windows性能監視器(Perfmon.exe)跟蹤的性能計數器。 您可以從Windows Server 2003中的“管理工具”啟動它。

可以從服務的.config文件的診斷部分啟用性能計數器,如以下示例配置所示:

<configuration>
  <system.serviceModel>
    <diagnostics performanceCounters="All" /> 
  </system.serviceModel>
</configuration>

您可能需要查看這些文章,它們可以指導您如何使用WCF服務的性能計數器:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM