WMI を使用して数百のホストを監視しています。約 5 秒ごとに CPU 使用率をポーリングしています。C# のスレッド プールを使用して、現在スケジュールされている適切な WMI クエリを実行しています。通常、クエリを実行するスレッドは 30 程度しかありません。CPU使用率が目に見えない5秒ではなく、16秒のギャップがある場合があります。CPU が十分に活用されていないため、ボトルネックは RPC または TCP/IP スタックにあると思われます。ただし、接続が永続的に開いたままになっているため、TCP/IP スタックではないと思います。したがって、ボトルネックは監視マシンの RPC にあると思われます。
監視マシンでできる RPC チューニングはありますか?
更新 1:
投稿する前に、すでにいくつかの .NET チューニングを行っています。との呼び出しでを調整しThreadPool
ました。で作成されたオブジェクトを使用しています。ThreadPool.SetMinThreads(200, 200)
ThreadPool.SetMaxThreads(300,300)
Task
TaskCreationOptions.LongRunning | TaskCreationOptions.PreferFairness