Рабочий процесс IIS использует много памяти?
У меня есть один веб-сайт на моем сервере, и 9X_asp.net мой рабочий процесс IIS постоянно использует 9X_aspx 4 ГБ ОЗУ. Что я должен проверить?
c:\windows\system32\inetsrv\w3wp.exe
Ответ #1
Ответ на вопрос: Рабочий процесс IIS использует много памяти?
Я бы проверил раздел настройки CLR в document, упомянутом 9X_worker-process Гульзаром.
Как указывалось на других плакатах, для 9X_asp-net любого объекта, реализующего IDispose
, должен быть 9X_asp.net вызван Dispose()
по завершении работы, предпочтительно 9X_asp.net-website с использованием конструкции using
.
Запустите 9X_memory perfmon.exe
и добавьте эти счетчики:
- Процесс \ Байты личного пользования
- Память .NET CLR # байт во всех кучах
- Процесс \ Рабочий набор
- Память .NET CLR \ Размер кучи больших объектов
Увеличение байтов 9X_aspdotnet личного пользования, в то время как количество 9X_memory байтов во всех кучах счетчик остается прежним 9X_iis указывает на неуправляемый потребление памяти.
Увеличение оба 9X_asp-net счетчика указывают на управляемую память потребление
Ответ #2
Ответ на вопрос: Рабочий процесс IIS использует много памяти?
проверьте раздел об устранении проблем с 9X_worker-process памятью в Tuning .NET Application Performance
Ответ #3
Ответ на вопрос: Рабочий процесс IIS использует много памяти?
Создайте мини-дамп процесса w3wp и используйте 9X_worker-process WinDbg, чтобы узнать, какие объекты находятся 9X_worker-process в памяти. Это то, что группа поддержки IIS 9X_iis в Microsoft делает всякий раз, когда им 9X_worker-process задают подобные вопросы.
Ответ #4
Ответ на вопрос: Рабочий процесс IIS использует много памяти?
Если у вас есть доступ к исходному коду, вы 9X_asp-net можете проверить, что любые объекты, реализующие 9X_aspdotnet IDisposable, упоминаются внутри операторов 9X_aspx using
или правильно утилизируются, когда вы закончите 9X_memory с ними.
Using
- это конструкция C#, но основная 9X_asp.net идея состоит в том, что вы освобождаете 9X_aspx ресурсы, когда закончите.
Еще одна вещь, которую 9X_asp-net следует проверить, - это то, что большие 9X_asp-net объекты помещаются в состояние сеанса или 9X_aspx в кеш "в процессе".
Ответ #5
Ответ на вопрос: Рабочий процесс IIS использует много памяти?
Более подробная информация определенно поможет. Сколько 9X_aspdotnet приложений работает в пуле приложений? Есть 9X_asp.net-website ли в пуле приложения ASP.NET?
Если вы используете 9X_asp.net ASP.NET, внимательно посмотрите, что вы 9X_aspdotnet храните в переменных сеанса и кэша. Используйте 9X_iis PerfMon, чтобы проверить, сколько существует 9X_worker-process коллекций поколений 0, 1 и 2. С осторожностью 9X_aspdotnet относитесь к хранению элементов пользовательского 9X_aspdotnet интерфейса в состоянии сеанса или в кеше, поскольку 9X_memory это предотвратит сбор всего экземпляра страницы 9X_aspdotnet и всех дочерних экземпляров страницы. Наконец, проверьте, много 9X_aspx ли вы выполняете конкатенацию строк. Это 9X_asp.net может вызвать множество экземпляров объектов, поскольку 9X_asp.net строки .NET неизменяемы. Попробуйте вместо 9X_aspdotnet этого использовать StringBuilder.
-
4
-
1
-
2
-
3
-
5
-
3
-
4
-
4
-
2
-
1
-
3
-
4
-
12
-
8
-
2
-
9
-
10
-
8
-
5
-
6
-
4
-
2
-
5
-
6
-
13
-
4
-
4
-
5
-
6
-
4
-
29
-
5
-
5
-
11
-
3
-
26
-
3
-
4
-
23
-
5
-
35
-
8
-
19
-
6
-
3
-
2
-
3
-
4
-
2
-
4