JVM свободного места в памяти становится все меньше - PullRequest
0 голосов
/ 28 сентября 2018

enter image description here

Я использую zabbix для мониторинга свободного места в памяти jvm.Его пространство постоянно уменьшается.Чем это может быть вызвано?Я подозреваю, что это переполнение памяти.Есть ли способ проверить это?Кто-нибудь может мне помочь?

update

После перезапуска jvm я выполнил команду jmap -histo:live.Здесь есть проблема с инициализацией?

num     #instances         #bytes  class name
----------------------------------------------
   1:        192100       28118472  [C
   2:         10757       10132704  [B
   3:        101676        8947488  java.lang.reflect.Method
   4:        165148        5284736  java.util.concurrent.ConcurrentHashMap$Node
   5:        187677        4504248  java.lang.String
   6:         19509        3519904  [I
   7:         62802        3014496  org.aspectj.weaver.reflect.ShadowMatchImpl
   8:         57683        2307320  java.util.LinkedHashMap$Entry
   9:         18410        2044672  java.lang.Class
  10:         40274        2016656  [Ljava.lang.Object;
  11:         62801        2009632  org.aspectj.weaver.patterns.ExposedState
  12:         59849        1915168  java.lang.ref.WeakReference
  13:          1342        1774328  [Ljava.util.concurrent.ConcurrentHashMap$Node;
  14:         22572        1753560  [Ljava.util.HashMap$Node;
  15:           920        1576512  [Ljava.nio.ByteBuffer;
  16:         47884        1532288  java.util.HashMap$Node
  17:         26167        1465352  java.util.LinkedHashMap
  18:         10874        1391872  org.aspectj.weaver.reflect.ReflectionBasedResolvedMemberImpl
  19:         49720        1085320  [Ljava.lang.Class;
  20:         45193        1084632  java.util.ArrayList
  21:         13421         966312  java.lang.reflect.Field
  22:         54885         878160  java.lang.Object
  23:         16797         806256  java.util.HashMap
  24:         19297         771880  java.lang.ref.SoftReference
  25:         23315         559560  java.beans.MethodRef
  26:         17695         530192  [Ljava.lang.String;
  27:          6508         520640  java.lang.reflect.Constructor
  28:          8305         465080  java.beans.MethodDescriptor
  29:         23607         459008  [Lorg.aspectj.weaver.ResolvedType;
  30:         17430         418320  org.springframework.core.MethodClassKey

1 Ответ

0 голосов
/ 28 сентября 2018

Это выглядит как очень нормальный график использования памяти для приложения Java.Как отмечается в одном из комментариев, в 09:00 JVM запустила сборщик мусора, в результате чего освободилось много памяти.Вы не предоставляете параметры, которые использовали для запуска JVM, поэтому неясно, какой размер у вас в куче (наверное, я бы сказал, 2Gb).Вернуть свободное пространство до 1,5 Гб после GC - нормально.Последующее медленное уменьшение свободного пространства впоследствии приводит к тому, что ваше приложение выделяет объекты для выполнения всего, что ему нужно.Я думаю также, что если вы покажете график работы приложения дольше, вы получите еще один всплеск, когда GC снова запустится.

Итак, короткий ответ - это то, что должна делать JVM.Если приложение продолжает работать (то есть вы не получаете OutOfMemoryError), тогда все в порядке.

...