aspnet_wp продолжает перерабатывать из-за высокого потребления памяти. Как я могу это исправить? - PullRequest
1 голос
/ 05 августа 2009

У меня есть небольшая служба WCF, которая выполняется на компьютере XP с 256 мегабайтами оперативной памяти, работающей в ВМ.

Когда я делаю запрос (с размером запроса приблизительно 5 МБ) к этой услуге, я всегда получаю следующее сообщение в журнале событий:

aspnet_wp.exe был переработан, поскольку потребление памяти превысило 153 МБ (60 процентов доступной оперативной памяти).

и сбой вызова с ошибкой 500.

Я пытался увеличить лимит памяти до 95%, но он по-прежнему занимает всю доступную память и терпит неудачу таким же образом.

Похоже, что-то не так с моим приложением (я не использую байтовые буферы [] и, возможно, что-то еще), но я не могу найти основную причину такого чрезмерного использования памяти.

Профилирование показало, что все объекты CLR, которые у меня есть в памяти вместе, не занимают столько места.

Выполнение анализа дампа с помощью windbg показало ту же ситуацию - ничего особенного в куче объектов.

Как я могу узнать, что способствует такому чрезмерному использованию памяти?

Есть ли способ сделать дамп непосредственно перед повторной обработкой процесса (при пиковой нагрузке)?

Ответы [ 2 ]

2 голосов
/ 05 августа 2009

В блоге Тесс Феррандез " Если оно не работает, исправьте его, вы должны ", есть множество советов, советов и рекомендаций по решению именно такой проблемы.

Особой пользой для вас будет Лабораторная работа 3: Память , где она проведет вас через процесс выяснения причин исчезновения всей памяти на вашем компьютере.

1 голос
/ 05 августа 2009

Может быть много вещей, трудно диагностировать это. Вы смотрели perfmon, чтобы видеть, действительно ли использование памяти достигает максимума в процессе aspnet или на самом сервере? 256 МБ довольно мало, но все равно должно быть в состоянии справиться с этим. У вас есть файл SWAP на этом компьютере? В какой момент вы берете дамп памяти? Вы перешли через код, и работает ли он на других машинах? Возможно, он застревает в цикле и теряет память до тех пор, пока не рухнет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...