У нас есть Java-приложение, работающее на Centos 6.4, и мы замечаем, что значение RES превышает 400 м, что больше, чем выделенная максимальная куча, равная 256 м. Согласно результатам jstat, как показано ниже, сборщика мусора не происходит. Это тревожная ситуация? Какие упреждающие меры можно предпринять? Я также провел анализ кучи через MAT.
Timestamp S0 S1 E O P YGC YGCT FGC FGCT GCT
2331438.3 56.95 0.00 62.79 82.79 80.37 1362 54.337 0 0.000 54.337
2331443.3 56.95 0.00 62.79 82.79 80.37 1362 54.337 0 0.000 54.337
2331448.4 56.95 0.00 62.79 82.79 80.37 1362 54.337 0 0.000 54.337
2331453.4 56.95 0.00 62.79 82.79 80.37 1362 54.337 0 0.000 54.337
2331458.4 56.95 0.00 62.79 82.79 80.37 1362 54.337 0 0.000 54.337
2331463.4 56.95 0.00 62.79 82.79 80.37 1362 54.337 0 0.000 54.337
2331468.4 56.95 0.00 62.79 82.79 80.37 1362 54.337 0 0.000 54.337
2331473.4 56.95 0.00 63.24 82.79 80.37 1362 54.337 0 0.000 54.337
2331478.4 56.95 0.00 63.24 82.79 80.37 1362 54.337 0 0.000 54.337
2331483.4 56.95 0.00 63.78 82.79 80.37 1362 54.337 0 0.000 54.337
2331488.4 56.95 0.00 63.78 82.79 80.37 1362 54.337 0 0.000 54.337
2331493.4 56.95 0.00 63.79 82.79 80.37 1362 54.337 0 0.000 54.337
2331498.4 56.95 0.00 63.79 82.79 80.37 1362 54.337 0 0.000 54.337
MAT results.
Problem Suspect 1
One instance of "org.jboss.netty.channel.socket.oio.OioWorker" loaded by "org.rzo.yajsw.boot.WrapperClassLoader @ 0xf0002a50" occupies 49,451,672 (75.12%) bytes.
Keywords
org.rzo.yajsw.boot.WrapperClassLoader @ 0xf0002a50
org.jboss.netty.channel.socket.oio.OioWorker
Problem Suspect 2
The class "java.lang.ref.Finalizer", loaded by "<system class loader>", occupies 10,408,112 (15.81%) bytes.
Keywords
java.lang.ref.Finalizer
Это нормально, что память RES не соответствует памяти кучи, поскольку куча является только частью памяти процесса jvm. Структура памяти JVM. Это единственная проблема?