Как проверить память Java, кроме кучи и перманента
Я запускаю jmxtrans с параметром: -Xms16m -Xmx16m -XX:MaxPermSize=32m, однако из представления os процесс занимает около 190 м памяти, я использую jstat, использование new, old и perm находятся под моими максимальными настройками памяти, так что объекты заняли лишнюю память? более 150м
ps aux output:
ps aux | grep jmxtrans
root 187 0.4 0.0 5987252 196492 ? Sl Jul07 17:15
/usr/java/jdk7/bin/java -server -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Xms16m -Xmx16m -XX:MaxPermSize=32m -Djmxtrans.log.level=info -Djmxtrans.log.dir=. -Dhost=5e7d319eaae7 -DjmxPort=59100 -DserviceName=maxwell -DserviceVersion=v1.0 -jar lib/jmxtrans-all.jar -e -f /jmxtrans/jmxtrans.json -s 60 -c false
вывод jstat:
# jstat -gc 187 1 1
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
512.0 512.0 288.0 0.0 4096.0 1043.8 11264.0 5822.7 26112.0 25959.7 2644 26.102 67 24.894 50.996
1 ответ
Non-Heap Memory и что-то еще, это вполне нормальная память кучи jvm, не соответствующая памяти res. см. структуру памяти JVM