远程WMI查询速度慢

raf*_*tic 16 c# wmi

我正在研究一个查询三个不同服务器的程序,以获取CPU和LogicalDisk信息.

我查询的每个服务器都会在6到15秒内返回值(取决于服务器).所以我需要总共31秒才能获得所有值(第一台服务器为15秒,第二台服务器为6秒,第三台服务器为10秒).

我尝试多线程每个查询,它减少了每个服务器1秒的执行时间,所以我不认为这是解决方案.

我还尝试在服务器中直接使用powershell运行查询:

  • 第一台服务器:需要10秒钟(而不是15秒)来检索信息

  • 第二台服务器:它需要10秒钟(就像我远程操作时)来检索信息

  • 第三台服务器)花了大约1秒钟(而不是6秒)

这是我的疑问:

SELECT LoadPercentage From WIN32_Processor

SELECT Size, FreeSpace From WIN32_LogicalDisk
Run Code Online (Sandbox Code Playgroud)

我的问题是:我的服务器上有什么可以使查询更容易吗?我已经尝试停用防火墙和防病毒软件.

PS:我正在查询Windows 2003 R2服务器,Win XP pro和Win 7服务器,每个服务器都与我的本地计算机位于同一个域中.

小智 0

尝试在本地查询以调查性能问题。如果仍然很慢,请调查您的查询。

我不知道你的项目规格是什么,但我会这样处理:1)创建一个查询控制台应用程序2)在每10-15分钟启动时将其安排在服务器上3)通过MSMQ推送或登录到数据库或网络服务。4) 控制台应用程序应部署为 clickonce,以便在需要其他性能计数器时可以单点更新。