gpt4 book ai didi

.net - 为什么perfmon无法看到我的自定义性能计数器的实例?

转载 作者:行者123 更新时间:2023-12-03 14:19:29 25 4
gpt4 key购买 nike

我正在为应用程序创建一些自定义性能计数器。我编写了一个简单的C#工具来创建类别和计数器。例如,下面的代码片段基本上就是我正在运行的代码。然后,我运行一个单独的应用程序,该应用程序会不断刷新计数器的原始值。在运行时,计数器和虚拟实例可以在perfmon中本地看到。

我遇到的问题是,当从另一台服务器远程查看时,我们使用的监视系统无法在我创建的多实例计数器中看到实例。使用perfmon浏览计数器时,我可以看到类别和计数器,但是“实例”框显示为灰色,我什至不能选择“所有实例”,也不能单击“添加”。使用其他访问方法(例如[typeperf][1])也会遇到类似的问题。

我不确定这是服务器还是代码问题。这只能在我需要的生产环境中重现。在我的台式机和开发服务器上,它运行良好。我是所有服务器上的本地管理员。

CounterCreationDataCollection collection = new CounterCreationDataCollection();

var category_name = "My Application";
var counter_name = "My counter name";
CounterCreationData ccd = new CounterCreationData();
ccd.CounterType = PerformanceCounterType.RateOfCountsPerSecond64;
ccd.CounterName = counter_name;
ccd.CounterHelp = counter_name;
collection.Add(ccd);

PerformanceCounterCategory.Create(category_name, category_name, PerformanceCounterCategoryType.MultiInstance, collection);


然后,在一个单独的应用程序中,我运行它来生成虚拟实例数据:

var pc = new PerformanceCounter(category_name, counter_name, instance_name, false);
while (true) {
pc.RawValue = 0;
Thread.Sleep(1000);
}

最佳答案

您的程序碰巧是在Windows 2008 R2或其他64位Windows OS上运行的32位程序吗?如果是这样,您可能要检查服务“性能计数器DLL主机”是否正在运行。此服务使64位和远程进程能够查询32位进程提供的计数器。

关于.net - 为什么perfmon无法看到我的自定义性能计数器的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1208385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com