Python 使用wmi获取windows服务已用内存

Python 使用wmi获取windows服务已用内存,python,wmi,Python,Wmi,我正在尝试检索windows服务(例如IIS)使用的内存量。我正在使用python和windows wmi扩展。我在WIN32_服务类中找不到任何可以提供我所需信息的方法。获取此信息的最佳方法是什么?有关进程内存的信息通过WMI使用公开。特别是,您可能会对WorkingSetSize和VirtualSize属性感兴趣。由于您是从服务启动的,因此您需要从服务中获取ProcessId属性,以便选择适当的Win32\u进程实例 监控IIS的总内存消耗可能有点复杂,因为IIS会根据其配置方式启动多个进程

我正在尝试检索windows服务(例如IIS)使用的内存量。我正在使用python和windows wmi扩展。我在WIN32_服务类中找不到任何可以提供我所需信息的方法。获取此信息的最佳方法是什么?

有关进程内存的信息通过WMI使用公开。特别是,您可能会对
WorkingSetSize
VirtualSize
属性感兴趣。由于您是从服务启动的,因此您需要从服务中获取
ProcessId
属性,以便选择适当的Win32\u进程实例

监控IIS的总内存消耗可能有点复杂,因为IIS会根据其配置方式启动多个进程和服务(请参阅)。但是,在这个例子中,让我们假设我们只对所消耗的内存感兴趣,它实现了实际的HTTP协议。假设我们正在使用Tim Golden's,我们将需要执行以下操作:

 import wmi

 c = wmi.WMI()
 for www_srv in c.Win32_Service(Name = 'W3SVC'):
      for process in c.Win32_Process(ProcessId = www_srv.ProcessId):
          print 'Memory used by W3SVC', process.WorkingSetSize