1

API の新しいSystem.Diagnostics.PerformanceDataセットを使用してカウンターに書き込み、複数のプロセスから 1 つのカウンターを同時にインクリメント/デクリメントしたいと考えています。

CounterSetInstanceType をさまざまな方法で微調整しようとしましたが、成功しませんでした:

Multiple または MultipleAggregate を使用すると、perfmon には常に単一のインスタンスが表示されますが、実際にはプロセスごとに個別のカウンターがあり、互いに上書きされます。シングル カウンターセット タイプでも同じ動作が発生します。

gloablAggregate カウンターセット タイプのパフォーマンス モニターを試してみると、値がまったく読み取られないようです。

4

1 に答える 1

1

私自身の質問に答える:

ここに記載されているとおり: http://msdn.microsoft.com/en-us/library/windows/desktop/ee781345%28v=vs.90%29.aspx

マニフェスト ファイル内でカウンターを集計する方法を指定する必要があります (各カウンターの集計属性を設定することによって)。

そうしないと、カウンターが単に 0 / 未定義のままになるように見えます。

globalAggregate の場合、これは完全に機能します。

multipleAggregate の場合、これは (multipleAggregate として定義した結果として) カウンターセット用に自動的に作成される _Total インスタンスにのみ影響します。他のすべてのインスタンスは、古い動作のままです。

「MultipleInstanceAggregate」カウンター タイプもあるようですが、マニフェスト スキーマでサポートされていないことがわかります。(参照: http://msdn.microsoft.com/en-us/library/system.diagnostics.performancedata.countersetinstancetype )

于 2012-06-04T23:31:18.127 に答える