簡體   English   中英

使用性能計數器跟蹤Windows服務

[英]Using Performance Counters to track windows services

我正在使用一個由幾個應用程序和服務組成的系統,幾乎全部使用SQL數據庫。

Windows服務在不同的時間執行不同的操作,我想對其進行跟蹤。 這意味着在某些已部署的系統上,我們看到計算機的CPU運行狀況很高,我們看到sql進程運行狀況很高,但是我們不能確定是哪個服務負責。

我不知道性能計數器是否適合這項工作。

基本上,我希望能夠在某個時刻看到哪個服務喚醒並正在處理某些東西。

在我看來,我最終可以擁有一個perfcounter ,每個服務只能顯示0或1的值,以顯示其是否在做某事,但這似乎並不是perfcounters的正常用法。

性能計數器合適嗎?

您是否認為我應該以其他方式進行追蹤?

如果您的監視框架/方法已經以監視性能計數器為中心,那么這是一種可行的方法。

就我個人而言,我發現需要更多詳細的工具來真正了解我的服務中正在發生的事情(盡管這可能與我的服務的性質有關)。

我使用.NET Logging Framework,因為它很簡單,並且可以寫入多個目標,包括日志文件,事件日志和TCP套接字(我有一個簡單的監視器,它監聽每個應用程序服務器的日志記錄套接字,並向我實時顯示發生了什么)。

性能計數器之所以具有吸引力是因為它們確實很輕巧,但是正如您所說,它們僅允許您捕獲數字值。 當然,您可以記錄很多不同類型的值,例如平均值,增量和總計,但它們必須是數字。

如果您需要更多信息,則必須使用其他某種類型的工具。 在您的情況下,聽起來您的需求在該方向上更多了。

如果您的服務不會太頻繁地喚醒和暫停自身,那么聽起來像是向自定義事件日志發送信息性消息可能是個好主意。 如果您希望這些應用程序有足夠的數量,請為該應用程序創建一個自定義事件日志,以免淹沒常規的應用程序事件日志。

如果您希望工具為正常事件日志生成太多數據,則.NET Trace API將是一個更好的選擇。 您可以將應用程序配置為基於app / web.config進行跟蹤或不進行跟蹤,盡管更改需要重新啟動應用程序。 如果您只希望使用檢測工具進行故障排除,但是如果它生成過多的數據或者跟蹤本身會使性能降低太多,那么這是一個很好的選擇。 關於Tracing API的另一個好處是,您可以在多個級別上進行跟蹤,因此,即使您編寫的代碼非常冗長,但如果啟用了詳細跟蹤,也只會看到詳細的跟蹤數據。 這樣可以更好地控制所追蹤的內容。

埃里克·J(Eric J)有一個觀點。 我認為,如果您真的想捕獲“定時”性能,則必須使用其他某種日志記錄,並使用開始和停止時間日志。 我個人喜歡log4net,但是第一次進行配置可能很麻煩

暫無
暫無

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

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