詳細介紹C#伺服器效能監控之效能計數器的程式碼範例

來源:互聯網
上載者:User
上一篇文章《伺服器效能監控之WMI》介紹了通過遠程com擷取伺服器效能(當然也可用於本地),那麼這篇主要說說windows系統內建的效能監控功能----->performancecouonter.

開啟管理工具-->效能,我們可以立即看到伺服器的CPU,進程已耗用時間,磁碟容量等績效參數走勢圖。然而不僅僅是這幾項,我們可以通過添加技術器來查看其他的效能指標:

如果你說,這麼看太麻煩了,OK,我們通過C#將這些值取出來,用於實現自身的效能監控:

1.添加引用:

using System.Diagnostics;

2.建立並執行個體化PerformanceCounter

public static System.Diagnostics.PerformanceCounter pc= new System.Diagnostics.PerformanceCounter();public static System.Diagnostics.PerformanceCounter pcm= new System.Diagnostics.PerformanceCounter();public static System.Diagnostics.PerformanceCounter pcb= new System.Diagnostics.PerformanceCounter();public static System.Diagnostics.PerformanceCounter pcc= new System.Diagnostics.PerformanceCounter();//我們用四個對象做不同的操作,注意:是static的,不然每次取出的資料都是初始值,如cpu利用率就是0

3.建構函式

static CapabilityScout()...{pc.CategoryName = "Processor";pc.CounterName = "% Processor Time";pc.InstanceName = "_Total";pc.MachineName = ".";pcm.CategoryName = "Memory";pcm.CounterName = "% Committed Bytes In Use";pcm.MachineName = ".";pcb.CategoryName = "Windows Media Unicast Service";pcb.CounterName = "Allocated Bandwidth";pcb.MachineName = ".";pcc.CategoryName = "Windows Media Unicast Service";pcc.CounterName = "Connected Clients";pcc.MachineName = ".";}

4.擷取計數器值

    擷取CPU利用率#region 擷取CPU利用率        public static string getCpuUsage()        ...{            string used = pc.NextValue().ToString();            return used;        }        #endregion        擷取記憶體使用量率#region 擷取記憶體使用量率        public static string getMemory()        ...{            float used = pcm.NextValue();            return used.ToString();        }        #endregion        擷取WMS串連數#region 擷取WMS串連數        public static string getConnectedCount()        ...{            string count = pcc.NextValue().ToString();            return count;        }        #endregion        擷取網路流量#region 擷取網路流量        public static string getServerBandWidth()        ...{            string bandwidth = pcb.NextValue().ToString();            return bandwidth;        }        #endregion

當然,這裡只是其中及少的部分,不過通過使用同樣的方式,我們可以擷取更多的效能以及進程啟動並執行情況,但是要說明的一點是,所擷取的資料必定是windows服務所提供的,當然我們也可以自己寫一些windows服務,添加到系統performancecounter中來,對.net來說也是非常方便的。

怎麼樣,和WMI比起來,是不是又方便了一些呢,呵呵~~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.