我使用WMI來監控一些數百臺主機。我每5秒查詢CPU使用情況。我正在使用C#的線程池來運行當前調度的適當WMI查詢。通常,運行查詢的線程不超過30個。有時候會有16秒的間隔,而不是5秒,CPU使用率不可見。由於CPU未充分利用,我懷疑是RPC還是TCP/IP堆棧的瓶頸。不過,我認爲這不是TCP/IP堆棧,因爲連接永久保持打開狀態。所以我懷疑監控機器上的RPC存在瓶頸。的Windows RPC調整
是否有任何RPC調整我可以監控機上呢?
更新1:
我已經做了一些調整。NET我張貼之前。我已經調整了ThreadPool
與ThreadPool.SetMinThreads(200, 200)
和ThreadPool.SetMaxThreads(300,300)
電話。我現在用的是Task
對象,所有與TaskCreationOptions.LongRunning | TaskCreationOptions.PreferFairness
創建。
不幸的是,我已經做到了我之前發佈。我使用ThreadPool.SetMinThreads(200,200)和ThreadPool.SetMaxThreads(300,300)調用了'ThreadPool'。我正在使用'Task'對象,它們都是使用TaskCreationOptions.LongRunning |創建的TaskCreationOptions.PreferFairness'。 – wilx 2012-04-19 08:39:25