本文摘自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();
|
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#实现与现有.net事件桥接的简单代码
详情介绍C#中winform实现多线程异步更新ui的示例代码
详细介绍winformC#获得mac地址,ip地址,子网掩码,默认网关的代码实例(图)
C#中关于new的用法以及和override的区别分析详解
C#中常用的正则表达式总结分享
详解C#生成随机数功能的代码示例
C#格式化数字代码示例详解
C# 如何设置系统的默认打印机的简单代码示例
C#实现char字符数组与字符串相互转换的方法详解
.net中创建webservice服务的实例分析(图文)
更多相关阅读请进入《C#》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » 详细介绍C#服务器性能监控之性能计数器的代码示例