详细介绍C#服务器性能监控之性能计数器的代码示例


本文摘自PHP中文网,作者黄舟,侵删。

上一篇文章《服务器性能监控之WMI》介绍了通过远程com获取服务器性能(当然也可用于本地),那么这篇主要说说windows系统自带的性能监视功能----->performancecouonter.

打开管理工具-->性能,我们可以立即看到服务器的CPU,进程运行时间,磁盘容量等性能参数走势图。然而不仅仅是这几项,我们可以通过添加技术器来查看其他的性能指标:

如果你说,这么看太麻烦了,OK,我们通过C#将这些值取出来,用于实现自身的性能监视:

1.添加引用:

1

using System.Diagnostics;

2.创建并实例化PerformanceCounter

1

2

3

4

5

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.构造函数

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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.获取计数器值

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

获取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比起来,是不是又方便了一些呢,呵呵~~

以上就是详细介绍C#服务器性能监控之性能计数器的代码示例的详细内容!

相关阅读 >>

详解C#不登录电脑启动程序(图文)

ants performance profiler(.net性能调优教程)

关于C#中字典dictionary的顺序及倒序详解

C#如何将datatable中的列名复制到另一个datatable

C#基础入门-简单了解注释

C#实现网络电子白板、课件功能 (在线教学系统)

详细介绍使用C#实现windows form调用r进行绘图与显示的方法(图)

C#实现在listview中插入图片的示例代码分享

详细介绍C#win32控制台线程计时器代码示例

C# 将datatable数据导出到excel表格中的示例代码分享

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...