2 개의 성능 카운터 값을 업데이트하는 WCF 서비스가 있습니다. 첫 번째는 NumberOfItems64로 정의되고 두 번째는 RateOfCountsPerSecond64로 정의됩니다. 이 값을 업데이트하면 (초당 여러 번) perfmon은 첫 번째 카운터에 대해 올바른 값을 예상대로 표시하지만 항상 두 번째 카운터의 값은 0이라고 표시합니다. 코드를 디버깅 할 때 예상대로 두 번째 카운터의 RawValue 속성은 다음 RateOfCountsPerSecond64 형식의 성능 카운터는 항상 0 값을 갖습니다.
가 카운터를 만들 내 PowerShell을 코드입니다 ... 업데이트됩니다 : 여기$categoryName = "My category"
$exists = [System.Diagnostics.PerformanceCounterCategory]::Exists($categoryName)
if ($exists)
{
[System.Diagnostics.PerformanceCounterCategory]::Delete($categoryName)
}
$counters = new-object System.Diagnostics.CounterCreationDataCollection
$counter = new-object System.Diagnostics.CounterCreationData
$counter.CounterType = [System.Diagnostics.PerformanceCounterType]::NumberOfItems64
$counter.CounterName = "# ops"
$counters.Add($counter)
$counter = new-object System.Diagnostics.CounterCreationData
$counter.CounterType = [System.Diagnostics.PerformanceCounterType]::RateOfCountsPerSecond64
$counter.CounterName = "# ops/sec"
$counters.Add($counter)
[System.Diagnostics.PerformanceCounterCategory]::Create($categoryName, $categoryName, [System.Diagnostics.PerformanceCounterCategoryType]::MultiInstance, $counters)
는 카운터의 값을 업데이트하려면 코드입니다
long value = GetValue();
counter1.IncrementBy(value);
counter2.IncrementBy(value);
StackOverflow에서이 질문을 발견했습니다. 그쪽으로 내 광경과 꽤 비슷해 보입니다 : Counter of type RateOfCountsPerSecond32 always shows 0하지만 문제가 해결되지 않습니다.
아이디어가 있으십니까?