2016-04-30 12 views
-2

У нас есть приложение Java, а jdk - 7up75 ... Xms - 1 ГБ, а Xmx - 3 ГБ. Мы используем JConsole для мониторинга JVM, и мы обнаружили, что использование JVM продолжает увеличиваться ... Мы включили GC и GCInterval - 30 минут. В выходные дни приложение используется 1-2 пользователями, но все же, когда мы проверяем использование JVM в понедельник утром, мы видим почти такое же или более высокое использование JVM, чем в пятницу вечером. В настоящее время мы сталкиваемся с ошибкой памяти за каждые 1 неделю. Начался этот вопрос только за последний месяц. Такая же система работала нормально в течение последних 2 лет без каких-либо проблем. Теперь DB почти удвоилось ... Может ли кто-нибудь дать какие-либо подсказки или предложения, пожалуйста .. Спасибо заранее.Использование памяти JVM продолжает расти

+1

Похоже, что у вас есть утечка памяти. С тем, что вы предоставили, вам больше никто не скажет. Вы могли бы также вызвать механика и сказать: «Моя машина не работает правильно, что случилось?». – dimo414

+1

его время для кучи кучи и анализатор памяти eclipse – radai

+0

Dimo414 и Radai .... Спасибо .. Я задаюсь вопросом, есть ли утечка памяти, почему система работает в течение двух лет без какой-либо ошибки кучи .... Также в настоящее время как APP, так и DB сервер находится в одном компьютере ... 8 ГБ оперативной памяти и 4 ядра процессора ... что если мы разделим БД на другой сервер? ..... – Shame

ответ

1

Как говорится в комментарии, этот звук как классические симптомы утечки памяти. Прежде чем тратить время на поиск других возможных причин (без каких-либо доказательств по какой-либо конкретной причине), вам рекомендуется использовать анализатор памяти, чтобы проверить, действительно ли теория утечки памяти действительна.

.. Интересно, что проблема с утечкой памяти, почему система работает в течение двух лет без какой-либо ошибки кучи.

Это не означает, что это не утечка памяти.

Единственное, что можно сказать с уверенностью, это то, что что-то изменилось. Это что-то может быть будет много вещей:

  • изменения в программное обеспечение или библиотеки,
  • изменения к JVM,
  • изменения в количестве информации в системе (например, в памяти информации),
  • изменение способа пользования системой
  • другие вещи, о которых я не думал.

Также в настоящее время как APP и сервер БД находится в той же машине ... 8 Гб оперативной памяти и 4 ядра cpu..what если разбить БД на другой сервер?

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

+0

Спасибо Stephen C за подробный ответ ... не могли бы вы подробно рассказать, как я могу анализировать утечку памяти ... можете ли вы предложить некоторые лучшие инструменты/программное обеспечение и способ анализа ... Спасибо заранее .... – Shame

+0

также как вы сказали, мы изменили JVM ... ранее это было 32-битное jdk6u24 и 3 месяца назад мы обновили до 64-битного jdkup75 .... Количество одновременных пользователей также увеличилось за последние 3-4 месяца ...до использования con 30-40, а не его 60-70 .... Любой намек ...? – Shame

+0

также, как вы сказали, мы изменили JVM ... ранее это было 32-битное jdk6u24 и 3 месяца назад мы обновили до 64-битного jdkup75 .... Количество одновременных пользователей также увеличилось за последние 3-4 месяца ... до использования con 30-40, теперь его 60-70 .... Любой намек ...? – Shame

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