получить память службы Windows, используя wmi - PullRequest
0 голосов
/ 30 сентября 2011

Я пытаюсь получить объем памяти, используемый службой Windows, например, IIS.Я использую Python и Windows WMI расширения.Я не нашел ни одного метода в классе WIN32_Service, который бы дал мне необходимую информацию.Как лучше всего получить эту информацию?

1 Ответ

1 голос
/ 30 сентября 2011

Информация о памяти процесса отображается через 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...