Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows WMI Win32_PerfRawData_PerfOS_PagingFile PercentUsage figure中的可疑值_Windows_Vbscript_Wmi - Fatal编程技术网

Windows WMI Win32_PerfRawData_PerfOS_PagingFile PercentUsage figure中的可疑值

Windows WMI Win32_PerfRawData_PerfOS_PagingFile PercentUsage figure中的可疑值,windows,vbscript,wmi,Windows,Vbscript,Wmi,我已经编写了一个小的VBScript程序来查询WindowsXP下的页面文件使用情况(最终也是2003/2008服务器),但是我得到的数据似乎很奇怪 以下是节目: Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") for i = 1 to 10 Set qry1 = wmi.ExecQuery ("Select * from Win32_PageFileSetting")

我已经编写了一个小的VBScript程序来查询WindowsXP下的页面文件使用情况(最终也是2003/2008服务器),但是我得到的数据似乎很奇怪

以下是节目:

Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
for i = 1 to 10
    Set qry1 = wmi.ExecQuery ("Select * from Win32_PageFileSetting")
    Set qry2 = wmi.ExecQuery ("Select * from Win32_PerfRawData_PerfOS_PagingFile")
    initial = 0
    maximum = 0
    For Each obj in qry1
        initial = initial + obj.InitialSize
        maximum = maximum + obj.MaximumSize
    Next
    For Each obj in qry2
        if obj.Name = "_Total" then
            Wscript.Echo _
                " Initial size: " & initial & _
                " Maximum size: " & maximum & _
                " Percent used: " & obj.PercentUsage & _
                ""
        end if
    Next
    qry1 = none
    qry2 = none
    WScript.sleep (1000)
Next
哪些产出:

Initial size: 1512 Maximum size: 3024 Percent used: 21354
Initial size: 1512 Maximum size: 3024 Percent used: 21354
Initial size: 1512 Maximum size: 3024 Percent used: 21354
Initial size: 1512 Maximum size: 3024 Percent used: 21354
Initial size: 1512 Maximum size: 3024 Percent used: 21354
Initial size: 1512 Maximum size: 3024 Percent used: 21354
Initial size: 1512 Maximum size: 3024 Percent used: 21354
Initial size: 1512 Maximum size: 3024 Percent used: 21354
Initial size: 1512 Maximum size: 3024 Percent used: 21354
Initial size: 1512 Maximum size: 3024 Percent used: 21354
MSDN上的文档说明:

使用率百分比

数据类型:uint32

访问类型:只读

限定符:

DisplayName(“%Usage”)

计数器类型(537003008)

DefaultScale(0)

PerfDetail(200)

正在使用的页面文件实例的百分比。有关详细信息,请参见

请参阅Win32_PerfRawData_PerfProc_进程中的PageFileBytes属性。

现在这看起来很直截了当。为什么我的3G页面文件占用了21000%的分配空间?这大约是630G,但pagefile.sys大约只有1.5G(我的整个硬盘只有186G)


更新:


当我从Win32 PerfFormattedData PerfOS PagingFile中得到相同的字段时,我得到了一个更合理的值5,但这似乎与Task Manager并不一致,它显示3G最大使用量超出了1.06G。

您不能像这样直接使用该值

ProcessUsage
属性的
CounterType
537003008
,它对应于计数器。根据第二个链接的公式,我们得出如下结论:

" Percent used: " & ((obj.PercentUsage * 100) / obj.PercentUsage_Base) & _

那更好。用这个公式,我得到5.77。。。在格式化数据的大致范围内。我只是想知道为什么任务管理器声明在3G中使用1.06G。我可能只是使用格式化的数据。我得到41.591。。。性能计数器显示约42%,任务管理器显示约50%。。。现在我们只能猜测谁在骗我们。(我倾向于任务管理器是这里的坏蛋,它是否考虑了虚拟内存的最大大小?…)我想我找到了解决方案。如果将Win32_performatteddata_PerfOS_内存中的CommitteedBytes相加,则会得到相同的值(目前约为1.1G)。这是分页文件中为活动进程写入其页面而保留的所有内存。所以我们可能会报告这个数字和百分比。谢谢并接受。