0
我試圖檢索由Windows服務使用的內存量,例如,IIS。我使用python和windows wmi擴展。我在WIN32_Service類中沒有找到任何方法可以給我所需的信息。獲取這些信息的最佳方法是什麼?獲取windows服務使用內存使用wmi
我試圖檢索由Windows服務使用的內存量,例如,IIS。我使用python和windows wmi擴展。我在WIN32_Service類中沒有找到任何方法可以給我所需的信息。獲取這些信息的最佳方法是什麼?獲取windows服務使用內存使用wmi
有關進程內存的信息通過WMI使用Win32_Process
class公開。尤其是,您可能會對WorkingSetSize
和VirtualSize
屬性感興趣。由於您是從服務開始的,因此您需要從服務中獲取ProcessId
屬性以選擇適當的Win32_Process實例。
監視IIS的總內存消耗可能有點複雜,因爲IIS會根據配置的方式來調整多個進程和服務(請參閱hierarchy of managed entities described here)。但是,讓我們假設在這個例子中,我們只關注W3SVC消耗的內存,它實現了實際的HTTP協議。假設我們使用Tim Golden的fantastic WMI library,我們需要這樣做:
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