Рабочий процесс IIS использует много памяти?

У меня есть один веб-сайт на моем сервере, и мой рабочий процесс IIS последовательно использует 4GB RAM. Что я должен проверять?

c:windowssystem32inetsrvw3wp.exe

6 ответов


Я бы проверил раздел Настройки CLR в документ Гульзар упомянул.

как указывали другие плакаты, любой объект, который реализует IDispose должно быть Dispose() вызвал его, когда он закончил, предпочтительно используя using строительство.

пожар perfmon.exe и добавить эти счетчики:

  • Process\Private Bytes
  • .NET CLR память# байты во всех кучах

проверьте раздел по устранению узких мест памяти в настройка производительности приложения .NET


Если у вас есть доступ к исходному коду, вы можете проверить, что любые объекты, реализующие IDisposable, ссылаются внутри using заявления или утилизируются должным образом, когда вы закончите с ними.

Using - это конструкция C#, но основная идея заключается в том, что вы освобождаете ресурсы, когда закончите.

еще одна вещь, которую нужно проверить, - это большие объекты, помещенные в состояние сеанса" в процессе " или кэш.


больше деталей определенно помогли бы. Сколько приложений запущено в пуле приложений? Есть ли ASP.NET заявки в пул?

Если вы работаете ASP.NET, внимательно посмотрите, что вы храните в переменных сеанса и кэша. Используйте PerfMon, чтобы проверить, сколько поколений 0, 1 и 2 коллекции происходят. Будьте осторожны с хранением элементов пользовательского интерфейса в состоянии сеанса или кэше, так как это предотвратит весь экземпляр страницы и все экземпляры страницы детей тоже забирают. Наконец, проверьте, делаете ли вы много конкатенации строк. Это может вызвать множество экземпляров объектов, так как строки .NET неизменяемы. Вместо этого посмотрите на использование StringBuilder.


создать мини-дамп процесса w3wp и использовать WinDbg, чтобы увидеть, какие объекты находятся в памяти. Это то, что команда поддержки IIS в Microsoft делает всякий раз, когда они получают такие вопросы.


Как отмечали другие люди, общей причиной этой проблемы является утечка ресурсов, также есть известная проблема с win2k3 server и IIS6 KB916984