如何找出Windows上的交换空间使用情况

时间:2010-08-31 00:47:37

标签: windows winapi swapfile

我想在Windows 2003服务器上进行monitore交换空间使用。如果10分钟内使用率超过80%,将产生警报。 RAM有很多工具,但交换使用情况如何呢?我如何模拟这种情况并进行测试?

2 个答案:

答案 0 :(得分:1)

强制使用页面文件。开始致力于Memmory。使用VirtualAlloc api电话:

LPVOID WINAPI VirtualAlloc(
  __in_opt  LPVOID lpAddress,
  __in      SIZE_T dwSize,
  __in      DWORD flAllocationType,
  __in      DWORD flProtect
);

并将flAllocationType设置为MEM_COMMIT (0x1000),这应该启动正在使用的内存。一旦内存耗尽,就应该自动使用页面文件。我怀疑你必须开始测量使用情况,然后启发性地确定你需要使用百分比的时间。

要监控它,请阅读性能计数器。页面文件集具有您可以读取的%使用率计数器。 Start here on how to consume them。您所需要的只是创建一个读取信息的Windows服务,然后响铃相应的警报。

.Net:http://blogs.msdn.com/b/bclteam/archive/2006/06/02/618156.aspx C ++:http://msdn.microsoft.com/en-us/library/aa373219(v=VS.85).aspxhttp://msdn.microsoft.com/en-us/library/aa373214(v=VS.85).aspx

答案 1 :(得分:1)

使用内置性能计数器。您可以通过WMI / Win32_Perf:

获取它们

http://msdn.microsoft.com/en-us/library/aa394270%28v=VS.85%29.aspx

或原始性能计数器/注册表接口:

http://msdn.microsoft.com/en-us/library/aa373083%28v=VS.85%29.aspx