Надежный способ просмотра статистики производительности для конкретного процесса в пуле приложений IIS6.

В perfmon в Windows Server 2003 есть объекты-счетчики для получения статистики рабочего набора процессорного времени и памяти для каждого процесса. Единственная проблема заключается в том, что в среде с несколькими пулами приложений невозможно надежно определить правильный рабочий процесс. В perfmon все они называются «w3wp», а если их несколько, то w3wp, w3wp#1, w3wp#2 и так далее. Даже эти имена ненадежны — число зависит от того, какое из них запустилось первым, и, очевидно, меняется, когда пул приложений перезапускается, потому что процесс уничтожается и перезапускается.

Я не нашел счетчиков, специфичных для ASP.NET, и по какой-то причине мой объект IIS не разделяет экземпляры — есть только один «глобальный» экземпляр.

В конечном счете, мне просто нужны счетчики «% процессорного времени» и «Рабочий набор» для определенного пула приложений IIS. Какие-либо предложения?


person Daniel Schaffer    schedule 16.12.2008    source источник
comment
Здесь та же проблема... запуск нового вопроса (кто знает). Он здесь, надеюсь, я получу ответ... stackoverflow.com/questions/2160726/   -  person Mose    schedule 29.01.2010


Ответы (2)


Мы всегда собирали статистику по всем процессам w3wp и собирали PID. Это один из счетчиков в группе Process.

На этом сайте в папке system32 Server 2003 есть сценарий с именем IISApp.vbs, в котором перечислены все процессы и их идентификаторы PID. Вам нужно будет запустить это, чтобы захватить PID.

Я уверен, что должен быть лучший способ, но это сработало, когда нам нужно было выполнять специальный мониторинг.

person JoshBerke    schedule 16.12.2008

Экземпляр w3wp может не появиться, если рабочий процесс долгое время простаивает. Интерфейс пользовательского интерфейса должен использоваться в течение короткого времени, чтобы рабочий процесс (w3wp) мог отображаться в экземплярах.

person Venkat    schedule 17.01.2012