У меня есть веб-сайт в IIS 7, и мне нужно отслеживать использование памяти этого веб-сайта при наличии параллельных запросов. Не могли бы вы дать мне знать, как я могу это сделать? Есть ли какой-либо инструмент или возможно использовать любую функцию IIS?
Монитор использования памяти пула приложений
Ответ 1
Монитор производительности Windows должен иметь возможность приблизить вас к тому, что вы хотите. Есть буквально сотни показателей, которые можно использовать.
Чтобы получить доступ к нему, просто сделайте Start → Run → perfmon Оттуда выберите "Монитор производительности" на левой панели и нажмите кнопку "+", чтобы начать добавление в счетчики.
Если это веб-сайт на основе ASP.NET, вы можете выбрать одну из категорий счетчиков "ASP.NET Apps" (может иметь более 1, если у вас установлено более одной версии ASP.NET) и нажмите на Счетчик "Используемая память". В приведенном ниже списке отображаются все сайты actibe, и вы можете добавить счетчик для этого. Вы можете смотреть счетчик в режиме реального времени или выбирать сохранение данных на диск или БД для последующего анализа.
Существует категория счетчиков W3SVC_W3WP, которая позволяет вам проверять показатели для определенных пулов приложений, но ничего (что я вижу), которые будут предлагать память, используемую для каждого пула приложений.
В зависимости от того, что вы пытаетесь определить, вы можете найти кучу метрик, чтобы помочь в анализе.
Ответ 2
Чтобы получить счетчик "Управляемая память" для работы на моем сервере, я обнаружил, что мне пришлось внести дополнительные изменения:
Файл конфигурации aspnet.config
(обычно расположенный в C:\Windows\Microsoft.NET\Framework\v4.0.30319
, YMMV) должен быть изменен, чтобы включить элемент appDomainResourceMonitoring
(хотя, вероятно, там будет и другой материал):
<configuration>
<runtime>
<appDomainResourceMonitoring enabled="true"/>
</runtime>
</configuration>
Нет необходимости перезапускать IIS, но вам нужно повторно использовать пул приложений, который вы хотите контролировать.
Смотрите эти две записи в блогах для получения дополнительной информации:
Мониторинг производительности отдельного приложения Asp.net в Asp.net 4.0