本文摘自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#中的类型系统(值类型和引用类型)的简单介绍
c#中的arraylist是什么?
详解C#把unicode编码转换为gb编码的示例代码
C#二进制字节流查找函数indexof的示例代码详解
c#中的console.read()方法详解
C# socket实现简单控制台案例
关于C#中方法的阐述
C# 7.0 语言新特性
C#使用webclient登录网站并抓取登录后的网页信息实现方法
C#中关于new的用法以及和override的区别分析详解
更多相关阅读请进入《C#》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » 详细介绍C#服务器性能监控之性能计数器的代码示例