Информация о памяти процесса отображается через WMI с использованием Win32_Process
класса . В частности, вам, вероятно, будут интересны свойства WorkingSetSize
и VirtualSize
. Поскольку вы запускаете службу, вам нужно получить свойство ProcessId
от службы, чтобы выбрать соответствующий экземпляр Win32_Process.
Отслеживание общего потребления памяти IIS может быть немного сложным, поскольку IIS запускает несколько процессов и служб в зависимости от того, как он настроен (см. Иерархию управляемых объектов , описанную здесь ). Но давайте предположим для этого примера, что нас интересует только память, используемая W3SVC , которая реализует фактический протокол HTTP. Предполагая, что мы используем фантастическую библиотеку WMI Тима Голдена , нам нужно сделать что-то вроде этого:
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