c# – 为性能计数器安装Total实例

c# – 为性能计数器安装Total实例,第1张

概述VS 2005,C#2.0,.NET 2.0 / 3.0,Win2003 我正在尝试为MultiInstance安装一组性能计数器.我注意到,即使没有其他实例,某些系统性能计数器类别也会设置为“总”存活. ASP.NET Apps 2.0.50727就是一个例子. 所以我一直试图复制这个.我在Installer类中创建了以下例程,然后将其添加到安装项目中的自定义 *** 作. public overrid VS 2005,C#2.0,.NET 2.0 / 3.0,Win2003

我正在尝试为MultiInstance安装一组性能计数器.我注意到,即使没有其他实例,某些系统性能计数器类别也会设置为“总”存活. ASP.NET Apps 2.0.50727就是一个例子.

所以我一直试图复制这个.我在Installer类中创建了以下例程,然后将其添加到安装项目中的自定义 *** 作.

public overrIDe voID Install(System.Collections.IDictionary stateSaver){    //DeBUGger.Break();    CounterCreationData data = new CounterCreationData("ZCounter","ZCtrHelp",PerformanceCounterType.NumberOfItems32);    PerformanceCountercategory.Create("Zcategory","ZCatHelp",PerformanceCountercategoryType.MultiInstance,new CounterCreationDataCollection(new CounterCreationData[] { data }));    PerformanceCounter counter = new PerformanceCounter();    counter.categoryname = "Zcategory";    counter.Countername = "ZCounter";    counter.Instancename = "ZTotal";    counter.Instancelifetime = PerformanceCounterInstancelifetime.Global;    counter.Readonly = false;    counter.RawValue = 0;    base.Install(stateSaver);}

如果我取消注释DeBUGger.Break()行并逐步执行,我可以看到计数器实际上是使用正确的实例名称创建的,并且Visual Studio Server Explorer显示实例以及Instancelifetime设置为Global.我没有在安装程序中调用RemoveInstance()方法.

然而,在安装程序完成几秒钟后,该实例将从性能监视器和VS Server Explorer中消失.我该怎么做才能坚持下去?或者我可以吗?

解决方法 有些代码必须积极维护计数器.在您可以想到的所有情况中,例如ASP.Net,都有一项服务可以保持计数器.

由于您不满意在应用程序的某个实例运行时只有_Total实例处于活动状态,因此您必须编写一些代码来维护应用程序之外的性能计数器.没有魔力.

您可以编写一个满足您监控需求的小型服务.这将保持_Total计数器.您需要决定更新方案.最简单的方法是让应用程序的每个实例更新两个实例(自己的实例和_Total).

关于性能计数器的一些背景知识 – 要理解的主要是通常在通过互锁 *** 作更新的进程之间共享共享内存区域.像PerfMon(或任何其他应用程序)这样的工具最终连接到共享内存区域以获取当前值.因此,某些进程必须打开并拥有该共享内存区域.这就是你需要运行代码的原因. PerfMon没有为你创建_Total实例(它确实有一些非常复杂的计数器组合,允许平均值和速率,但不是创建摘要实例的总和).

总结

以上是内存溢出为你收集整理的c# – 为性能计数器安装Total实例全部内容,希望文章能够帮你解决c# – 为性能计数器安装Total实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1249267.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存