关于.net性能计数器

公司服务器比较多,需要个软件监测这些服务器的性能,从而做出变更和更新。研究了一下有如下总结:

1. 性能计数器performancecounter****类,这个是.net中集成的类,通过收集系统性能计数器信息监测性能数据。使用方便,但是有个弊端,对于分布式服务器管理有他的瓶颈,既在本地创建性能计数器很简单,但是若想连接远程服务器却是难于实现,查了很多资料都没发现有什么办法给远程服务器发送登录和连接的信息和凭证,是否微软没有实现这个远程的接口呢?我不知道。

2.wmi, 这个东西确实是个好东西。原理和前个差不多,只是切入层不一样,可以连接本地和远程服务器,但是他也有点缺陷,网上的远程监测或者控制都是比较普通的性能监测,如磁盘空间,cpu使用率,内存使用率等等,这些东西都可以从wmi的格式化数据直接获取,然而对于一些精确度较高的数据却很难,比如agv.disk sec/read 这个数据一般是毫秒级的如20毫秒,而wmi格式化的数据提供的是一个64位无符号整数,也就是0,因为这个数如果是个decimal型的话只会是0.0003之类的数而作为一个整数的话就是0了。于是乎这个要想得到这个较为精确的数呢只能自己算了,就是使用原始数据算出来,查了很多资料才找到对应的计算公式,其实这些性能计数器可以分类的,好像是30多个类型吧,通过wmi class name 获取到对应的counter type 然后通过这个counter type 可以找到对应的计算公式就可以计算出想要的数据。这些wmi class name 和counter type 可以用wmi sdk看看。另一个问题是感觉每次远程连接的时候比较慢,特别是连接的权限什么的不够的话会特别的慢而且时不时会出现两次连接读到的数据未更新所以比较郁闷啊。特别是实时监测的时候,比如一秒读一次数据,但是可能的情况是一秒钟还没连接上,下一次请求有来了。于是乎理想点的情况是数据延迟,不理想的情况就****。

留个问题,数据读到了,我要实时的显示到界面,用的是折线图,一个计数器数据一根线,因为需要对整根线进行控制,比如我需要控制取消显示或者显示某根线,怎么画呢?想到用一个容器保存收集到的数据,需要取消或者添加的时候把线重画,但是这个却会占用大量的内存,怎么办呢?还有数据延迟的问题,怎么解决呢?难啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值