2012-02-28 6 views
0

Я делаю анализ управления памятью для моего веб-приложения Java,Анализ по управлению памятью

Перед началом моего кота свободной памяти в ОЗУ составляет около 595 Мб, только я начал сервер свободной памяти идет до 151 МБ , Когда я взял кучу кучи, объекты занимали 262 МБ.

Так что только один кот будет оставлен 181 МБ?

Другой вопрос: я выполнил Load Test с 500 пользователями. Свободная память идет до 8 МБ, Когда я взял кучу сваливания здесь, это было около 265 МБ. Таким образом, свободное пространство 151 МБ сводится к 8 МБ, что может быть причиной

Обратите внимание, что я использовал команду top для проверки свободной памяти в ОЗУ.

ответ

0

Свободная память - это память, не используемая ядром, программами или дисковым кэшем. Насколько большой кэш диска зависит от того, какие файлы вы получили или удалили, а также плохой показатель потребления памяти.

Java использует довольно немного памяти, начиная с. Большая часть его разделяется. Tomcat может быть относительно сложным приложением в зависимости от того, что вы загружаете, но использовать 181 МБ для JVM и Tomcat представляется мне разумным.

+0

Спасибо, Питер. Что касается моего второго вопроса во время теста нагрузки, свободная память становится очень низкой, но когда я беру кучу кучи, я не вижу больших различий в размере при сравнении перед испытанием нагрузки и во время теста нагрузки. что может быть причиной недостаточной памяти при загрузке? –

+0

Вы делали дамп во время теста нагрузки или после теста нагрузки? Если вы сравниваете до и после теста, вы ожидаете, что он будет таким же, если у вас нет утечки памяти. –

+0

Я взял во время теста нагрузки –

0

Все зависит от того, как вы вычисляете свободную память (Profiler? TaskManager? Programmatically?) И какую память вы оцениваете (куча? Не-куча? И т. Д.). Tomcat сам по себе не занимает много памяти (Я точно не помню, но базовая настройка, безусловно, не должна принимать 180Mb)

+0

Я вычислил свободную память в ОЗУ командой 'top'. –

+0

ok, это, вероятно, не самый лучший способ вычислить фактическую память. Но что более важно, куча является «растущей» памятью: она начинается с минимального объема памяти, а затем каждый раз, когда ей требуется больше памяти, чем доступно в настоящее время, она увеличивает выделенную память (пока она не достигнет максимума). Это означает, что ваш объект может принимать 100Mb, но куча может использовать 128Mb. Там вы не используете 28Mb. Вероятно, вам стоит больше узнать о памяти Java и Java GC. –

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