0

我正在开发连接到远程主机并检索 CPU 利用率、RAM 使用率、磁盘负载等指标的应用程序……为了远程连接并检索这些指标,我使用 Windows Management Instrumentation (WMI)。我为每个指标创建 WQL 查询。例如,为了访问 4 种类型的指标,我使用了 4 种不同的 WQL 查询,这会导致整个监控过程出现一些延迟。我的问题是,有没有办法只使用一个 WQL(即只使用 1 次远程连接尝试),然后从该 WQL 查询的结果中检索必要的数据(指标)?我期待着您的回复。谢谢。

为了更准确地了解我的应用程序的运行情况:连接到3 个主机并从每个主机收集2 个不同的指标大约需要6 秒。这是正常的性能比吗?

我如何使用 WQL 获取可用 RAM 的方式:

string DomainPath = "\someserver.com\root\cimv2";
List<string> WQLresult = new List<string>();
ManagementObjectSearcher searcher = new ManagementObjectSearcher(DomainPath, "SELECT FreePhysicalMemory FROM Win32_OperatingSystem" );

try
{
    foreach (ManagementObject obj in searcher.Get())
    {
        WQLresult.Add(obj["FreePhysicalMemory"].ToString().Trim());
    }
}
catch (Exception ex)
{
}

我还使用 Win32_PerfFormattedData_PerfOS_Processor 类来获取 CPU 数据和 Win32_PingStatus 类来获取响应数据。可以看出,有3个不同的类。问题是,是否可以仅使用 1 个 WQL 来获取这些数据?

4

0 回答 0