2

私は論文のためにこの問題に取り組んできました。目標は、Windows 2K8 サーバー専用の .net サーバー監視ツールを開発することです。これまでのところ、アクセスできるのはソフトウェア パフォーマンス カウンターだけです。perfmon および WMI クラスを通じて利用できるものを意味します。

しかし、発生した TLB ミスの数や現在のメモリ帯域幅などを監視できるようにする必要があるという問題もあります。そして、それが私が立ち往生している場所です...これらのカウンターを取得する標準の.net方法がないため、Oprofileなどのオープンソースプログラムからいくつかのコードを読んでいます。しかし、私が何を探しているのか正確にはわからないので、その面ではあまり進歩がありません.

そこで、この種の経験があり、私を少し助けてくれる人がここにいるかどうかを謙虚に尋ねます。

前もって感謝します。

4

1 に答える 1

3

パフォーマンス カウンターを読み取るために最も広く使用されているライブラリは、Performance API (PAPI)です。PAPI は、実際には 2 つの API (高レベル低レベル) です。私はより直感的だと思うので、低レベルのものを使用する傾向がありますが、それは私だけかもしれません.

PAPI には 2 種類のイベントがあります。 プリセット イベントは、プラットフォームにとらわれないはずですが、内部でのカウント方法によって微妙に異なる場合があります。これらには TLB ミスやメモリ ストールが含まれているため、そこから始めることもできます。それがニーズに合わない場合は、特定のハードウェアに固有で、通常はハードウェアがカウントできるすべてのイベントを含むネイティブ イベントを確認することをお勧めします。papi_native_avalこれらのリストを取得するために使用します。

PAPI は Windows をサポートしていますが、実際に試したことはありません。特に Windows 2008 に言及しているドキュメント/readme には何も見つかりませんでしたが、少なくともソースを調べて、必要なカウンターにアクセスする方法を確認できます (直接アクセスできない場合でも)。

さらに必要な場合は、可能であれば、新しいバージョンの PAPI が Linux で使用するperfmon2を参照してください。

于 2009-05-24T00:56:19.993 に答える