一、概述
性能監視,是Windows NT提供的一種系統功能。Windows NT一直以來總是集成了性能監視工具,它提供有關操作系統當前運行狀況的信息,針對各種對象提供了數百個性能計數器。性能對象,就是被監視的對象,典型例子有Processor、Process、Memory、TCP/UDP/IP/ICMP、PhysicalDisk等。計數器通常提供操作系統、應用程序、服務、驅動程序等的性能相關信息,以此來分析系統瓶頸和對系統及應用程序性能進行診斷和調優。性能計數器機制讓應用程序和操作系統組件可以向性能監視應用程序,比如性能監視器(Performance Monitor),報告一些與性能有關的統計信息。PerfMon.exe中可以查看性能對象、性能計數器和對象實例,可通過添加計數器來查看相關描述信息。
實際上,可以通過編寫程序來訪問所有的Windows性能計數器。Windows中,注冊表是訪問性能計數器的一種機制。性能信息并不實際存在于注冊表中,在注冊表編輯器RegEdit.exe中是無法查看的,但可以通過注冊表函數來訪問,利用注冊表鍵來獲得從性能數據提供者那里提供的數據。打開名為HKEY_PERFORMANCE_DATA的特殊鍵,利用RegQueryValueEx函數查詢鍵下面的值,就可以直接訪問注冊表性能計數器信息。當然,也可以利用性能數據幫助器(PDH, Performance Data Helper) API (Pdh.dll)來訪問性能計數器信息。
性能日志和警報是作為 Windows 操作系統的一部分發行的一種管理性能監控工具。它依靠由各種 Windows 組件、子系統和應用程序發布的性能計數器,使您可以跟蹤資源使用情況以及針對時間以圖形方式繪制它們。您可以使用 Performance Logs and Alerts 來監控標準的性能計數器(例如,內存使用情況或處理器使用情況),或者您可以定義您自己的自定義計數器來監控應用程序特定的活動。
二、HKEY_PERFORMANCE_DATA數據組織
性能數據的頭部是一個PERF_DATA_BLOCK結構(如圖1所示),它描述系統和性能數據總體信息,可從Global鍵值處查詢得到該結構數據。PERF_DATA_BLOCK之后,定義了系統中的全部性能對象類型(PERF_OBJECT_TYPE),其中每個對象類型頭部中描述了下一個性能對象類型的偏移量Offset。
圖1
圖2
性能對象有兩種:一種是單實例對象,另一種是多實例對象。圖2和圖3分別描述了這兩種性能對象的數據組織方式。每個對象數據塊包含了一個PERF_OBJECT_TYPE結構,描述對象的性能數據。緊隨其后是PERF_COUNTER_DEFINITION結構列表,描述了性能對象的全部計數器定義。對于單實例對象,計數器定義列表后是一個PERF_COUNTER_BLOCK結構,計數器數據緊隨其后。每個PERF_COUNTER_DEFINITION結構中定義了計數器數據相對于PERF_COUNTER_BLOCK的偏移量,因此可以非常方便地獲得全部計數器的值。對支持多實例性能對象來說,PERF_COUNTER_DEFINITION結構列表之后是一組實例信息數據塊,每個表示代表一個對象實例。每個實例信息數據塊由一個PERF_INSTANCE_DEFINITION結構體、實例名和一個PERF_COUNTER_BLOCK結構體組成。后面是計數器值數據,與單實例對象相同。
圖3
三、性能計數器的架構
性能計數器采用的是客戶端服務器結構,性能數據采用共享內存存儲,在應用中自定義性能計數器,在應用程序調用的時候調用性能計數器進行計數。體系結構如下:
性能計數器可以獲得應用程序性能的實時度量數據,而不需要通過記日志,進行另外的處理。而且性能計數器可以遠程查看,可以通過管理工具(MOM)進行管理。在損耗上也非常的小。
四、.NET性能計數器實現
在.NET Framework下有個程序集
(C:WINDOWSMicrosoft.NETFrameworkv2.0.50727perfcounter.dll)實現了性能計數器功能,包括性能計數器的安裝/卸載,值的讀寫。
在命名空間System.Diagnostic提供了一組性能計數器類,包括performancecounterCategory,PerformanceCounter,PerformanceCounterInstaller,CouterSample等等。
在.NET中性能計數器有良好的抽象封裝,實現起來比C/C++容易得多。我們在應用經常只關注一些請求類型的數據度量,例如下述:
Requests Started
Requests Executing
Requests Completed
Requests Failed
Request Execution Time
Requests/Hour
Requests/5Min
Requests/Min
Requests/Sec
但是真正需要做這些性能計數器的安裝/卸載,計數,讀取還是需要大量的代碼,通過封裝來簡化編程接口。對于使用WCF來實現的服務,可以基于WCF的擴展性,進行進一步的封裝。
.Net最佳實踐3:使用性能計數器收集性能數據
http://blogs.msdn.com/b/ralarcon/archive/2012/10/03/web-app-performance-counters-compilation.aspx
Monitor your SQL Server
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
我的qq群里有人發起投票怎么制止?這個不能直接刪除。車主需要遵循以下步驟。首先,點擊投票鏈接。進入投票界面后,點擊右上角,會出現刪除操作。點擊刪除,然后再次點擊投票鏈接顯示 "投票 "。最后一步,把發布廣告投票的人踢出去,拉黑。先點擊這個投票鏈接,再點擊右上角的三個點投票刪除,再點擊表示已經刪除。QQ群里匿名投票除了發起人,群主和管理員可以看到誰投了票嗎?也可以被所有員工看到,可以在群設置中看到,...
奔馳烏莫尼克多少錢?500W左右的w .軍車,已經失去了市場,基本都是訂購,在私家車市場買不到。烏尼莫克房車2022最新售價?2022最新純進口奔馳品牌Unimoc房車銷售價格1300萬元。如果真的想買,和賣家溝通一下,可能會有折扣價。全新四驅奔馳U4023越野房車的銷量,正成為奔馳細分市場的驕傲,如同樸實的埃森人。凸起的前格柵與另一款奔馳經典越野車的G級頗為相似,橫向的中格柵體現了其最純粹的越...
計算機1e等于幾?計算機1E等于10科學計算1E=1*10=101e是什么意思?數字里的e是什么意思?1e-05是什么意思?的范圍不同,含義也會不同。如果表示一個數字的符號是十六進制,十進制中e代表14,十進制中1e代表30,如果結果中除e以外的所有數字都顯示出來,e前面只有一個小數點,那就是一種科學的計數方法,例如1.12e3,它代表1.12乘以10的三次方,那是1230。1e-9是什么???這是...