gpt4 book ai didi

performance - Windows Azure 中的自定义性能计数器

转载 作者:行者123 更新时间:2023-12-03 00:16:05 24 4
gpt4 key购买 nike

我在 Windows Azure 中运行自定义性能计数器时遇到严重问题。我根据 *.cscfg 文件中的配置更改,通过在 PostSharp 的帮助下动态实现的方面创建性能计数器。性能计数器在模拟器和 Azure 环境中均已正确创建(通过远程桌面检查),因为我可以在计算机管理控制台中的性能工具 -> 监视工具 -> 性能监视器下看到性能计数器实例。我在diagnostics.wadcfg 中添加了性能计数器。

<?xml version="1.0" encoding="utf-8"?>
<DiagnosticMonitorConfiguration configurationChangePollInterval="PT1M" overallQuotaInMB="4096" xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<DiagnosticInfrastructureLogs />
<Directories>
<IISLogs container="wad-iis-logfiles" />
<CrashDumps container="wad-crash-dumps" />
</Directories>
<Logs bufferQuotaInMB="1024" scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Information" />
<PerformanceCounters bufferQuotaInMB="250" scheduledTransferPeriod="PT1M">
<PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT1S" />
<PerformanceCounterConfiguration counterSpecifier="\Memory\Available MBytes" sampleRate="PT1S" />
<PerformanceCounterConfiguration counterSpecifier="\_Customer Category\average execution time for member call" sampleRate="PT1S" />
</PerformanceCounters>
<WindowsEventLog bufferQuotaInMB="1024" scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Error">
<DataSource name="Application!*" />
</WindowsEventLog>
</DiagnosticMonitorConfiguration>

问题是我从未在 WADPerformanceCountersTable 中看到性能计数器值。如果我启动模拟器,我会看到此错误:

[MonAgentHost] Error: MA EVENT: 2013-09-05T15:30:49.373Z
[MonAgentHost] Error: 2
[MonAgentHost] Error: 8360
[MonAgentHost] Error: 12556
[MonAgentHost] Error: SysCounterListener.dll
[MonAgentHost] Error: 0
[MonAgentHost] Error: 5fd713ae-0085-4ba3-87f6-e21ad86
[MonAgentHost] Error: liscounter.cpp
[MonAgentHost] Error: SystemCounter::AddCounter
[MonAgentHost] Error: 660
[MonAgentHost] Error: ffffffffc0000bb8
[MonAgentHost] Error: 0
[MonAgentHost] Error:
[MonAgentHost] Error: PdhAddCounter(\_Customer Category\average execution time for member call) failed

创建类别的代码见下文(_categoryName =“_Custom Category”和_counterName =“成员调用的平均执行时间”)

    private void CreateCategory()
{
if (!PerformanceCounterCategory.Exists(_categoryName))
{
Trace.TraceInformation("Creating new category '{0}'", _categoryName);

_counters = new CounterCreationDataCollection
{
new CounterCreationData(_counterName, _performanceCounterHelperText, PerformanceCounterType.AverageTimer32),
new CounterCreationData(_averageBasePerformanceCounterName, string.Empty, PerformanceCounterType.AverageBase)
};

PerformanceCounterCategory.Create(_categoryName, string.Empty, PerformanceCounterCategoryType.MultiInstance, _counters);
}
}

private void CreateOrGetPerformanceCounters()
{
string averageBasePerformanceCounterName = string.Format("{0} {1}", _counterName, "base");

Trace.TraceInformation("Get new instance '{0}' of counter '{1}' in the category '{2}'", _instanceName, _counterName, _categoryName);
_performanceCounterAverage = new PerformanceCounter(
_categoryName, _counterName, _instanceName, false);

_performanceCounterAverageBase = new PerformanceCounter(
_categoryName, averageBasePerformanceCounterName, _instanceName, false);
}

下一个问题是,如何获取性能计数器的具体实例?在管理控制台中,我可以选择应显示哪个实例,如何在 Azure 中执行此操作?

最佳答案

有两个错误

  1. diagnostics.wadcfg 文件中的拼写错误:类别名称为 _Custom Category,我编写了 CustomER Category
  2. 性能计数器的格式为:\[类别名称]([实例名称]|*)\[性能计数器名称],所以在我的例子中是 \_Custom Category (*)\成员调用的平均执行时间。在这种情况下,星号失踪了!

关于performance - Windows Azure 中的自定义性能计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18655028/

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