Win32_PerfRawData_PerfProc_Process与资源监视器内存数据不匹配问询
进程内存指标匹配问题(Win32_PerfRawData_PerfProc_Process vs 资源监视器)
我正尝试通过Win32_PerfRawData_PerfProc_Process获取进程内存指标,并与资源监视器的输出做对比。选取PID为17820的powershell进程测试,使用win32com.client编写Python代码获取以下指标:VirtualBytes、VirtualBytesPeak、WorkingSet、PoolNonpagedBytes、PoolPagedBytes、PrivateBytes、PageFileBytes、PageFaultsPerSec。测试发现除WorkingSet与资源监视器的「工作集(Kb)」匹配外,其余指标均不匹配,具体问题如下:
问题1
Win32_PerfRawData_PerfProc_Process的PrivateBytes与资源监视器的「专用(Kb)」不匹配,需解释原因及匹配计算方法。
问题2
VirtualBytes数值异常超大(达TB级),而psutil的vms指标可匹配资源监视器的「提交(Kb)」,需说明该现象原因。
问题3
需明确如何通过Win32_PerfRawData_PerfProc_Process的指标映射资源监视器的「提交(Kb)」,以及如何计算资源监视器中的共享内存值。
我曾尝试以下计算公式,但均无效:
Commit Memory = VirtualBytes - (VirtualBytesPeak - PrivateBytes)
Shared Page File Bytes = Page File Bytes - Private Bytes
注:除虚拟内存相关指标外,Win32_PerfRawData_PerfProc_Process的其他指标(如页信息、池信息等)与psutil输出匹配。
内容的提问来源于stack exchange,提问作者V SAI MAHIDHAR
相关产品推荐
相关产品推荐

