2010-12-14 4 views
0

Я хотел бы описать странную проблему, которую я заметил при анализе моего приложения asp.net на производстве, и попросить совета или мнение по следующему вопросу.Странное увеличение памяти при утилизации пула приложений

Приложение обычно работает с размером памяти 80-90 МБ. Это кажется стабильным, так как утечки памяти не обнаружены до сих пор - незначительное увеличение использования памяти с течением времени. Тем не менее, проблема возникает, когда пул приложений перерабатывается (я использую общий хостинг и сужу по журналам, это происходит, когда приложение простаивает в течение 20 минут или каждые ~ 30 часов - что-то вроде этого). Проблема в том, что используемая память почти удваивается в течение некоторого периода времени на переработку - она ​​идет до 160-170 МБ без каких-либо объяснений. Это сбивает с толку, поскольку принято утверждать, что утилизация должна очищать память и все другие ресурсы - по крайней мере, я получаю ее таким образом. Система хранит этот объем памяти в течение примерно 7-8 часов, а затем использование памяти падает до обычного уровня 90-100 МБ, опять же, без видимых причин (по крайней мере, не знаю для меня). Все время приложение работает хорошо - никаких существенных задержек или проблем с доступностью сайта - пользователям все кажется ОК, никаких претензий пока нет. Рассматривая график потребления памяти по времени - он выглядит почти как функция шага.

Важно то, что я не смог воспроизвести подобное поведение в своей тестовой среде. Иногда я получаю заметки от администраторов провайдеров, что мое приложение использует больше ресурсов, чем разрешено, и это действительно меня беспокоит.

Итак, что бы я хотел знать - существует ли какой-либо возможный сценарий, когда утилизация пула приложений не освобождает все ресурсы памяти? Есть ли какие-либо рекомендации или рекомендации, на чем я должен сосредоточиться? Я не эксперт в этой области, но я читал о таких вещах, как совмещение рециркуляции, проблемы сериализации при переработке и еще несколько проблем ... Любые идеи? Аналогичный опыт?

Благодаря

ответ

0

Это сообщение обеспечивает довольно хороший обзор того, что происходит, когда приложение пула вашего сайта перерабатывается: http://blogs.msdn.com/b/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx

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

IMHO, если вы используете ~ 100 мегабайт памяти на общем хосте, вы просите о проблемах, если это хост вроде DiscountASP.NET или GoDaddy. Если вы вообще не заботитесь об этом веб-сайте, попробуйте получить VPS или еще один настраиваемый хостинг, где вы можете заплатить премию за более высокий лимит памяти.

Смежные вопросы