我已经构建了一个监控服务器的C#程序。监控包括捕获有关服务器的详细信息,例如内存空间,磁盘空间等。
这是使用WMI完成的。
我也在监控每台服务器的页面错误。
我想知道是否可以区分C#中的硬页面和软页面错误?
以下是我正在使用的代码的剪切:
var machine = "machine";
// get the scope of the remote server
var scope = new ManagementScope(@"\\" + machine + @"\root\cimv2");
// the query as a string
var queryString = "Select Name, ProcessId, PageFaults from win32_Process";
// the query as an object
var query = new ObjectQuery(queryString);
// Run the query
var worker = new ManagementObjectSearcher(scope, query);
var results = worker.Get();
pageFaults.WriteLine(machine);
// Enumerate around each item in the results query
foreach (ManagementObject item in results)
{
totalPages = totalPages + (int)(UInt32)item["PageFaults"];
}
Console.WriteLine("Total pages = {0}", totalPages);
pageFaults.WriteLine("*{0}*",totalPages);
答案 0 :(得分:0)
如果您正在尝试个人进程网页故障/秒,则可以使用下面提到的查询。正如Hans早先指出的那样,这个页面故障既硬又软。但是这些表格经常更新,如果我没有错, perfmon 也会显示相同的数据。
select * from Win32_PerfFormattedData_PerfProc_Process where NOT name = '_Total'
累积
select * from Win32_PerfFormattedData_PerfProc_Process where name = '_Total'