0

このシンプルなパフォーマンスカウンターのセットアップがあります。問題は、このパフォーマンスカウンターは完全に役に立たないということです。60秒の期間のCPU使用率を測定し、その数をログに記録します。私がする必要があるのは、なんとかしてデータをフィルタリングし、80%以上のようにCPU使用率が高い数値のみをログに記録するようにすることです。ログをガベージデータで膨らませたくありません。

diagnosticMonitorConfiguration.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(2D);
diagnosticMonitorConfiguration.PerformanceCounters.BufferQuotaInMB = 10;
TimeSpan perfSampleRate = TimeSpan.FromSeconds(60D);

 diagnosticMonitorConfiguration.PerformanceCounters.DataSources.Add(new PerformanceCounterConfiguration()
{
    CounterSpecifier = @"\Processor(_Total)\% Processor Time",
    SampleRate = perfSampleRate
});
4

1 に答える 1

0

あなたが要求していることは実際には不可能です。CPU値は、インスタンスごとに1分に1回の頻度でテーブルに転送できます。ただし、特定のしきい値のみを超える値を取得するには、WADPerformanceCountersTableに対してカスタムクエリを使用する必要があります。

あなたは何をしようとしているのですか?最終目標?

于 2012-04-07T01:20:12.330 に答える