JVM 内存监控 — Jevic

JVM 内存监控

2019/02/15 OPS

系统内存并不能反应JVM内存情况,经常碰到JVM内存满掉而系统内存大量空余的情况,或者是由于没有对JVM内存进行有效的监控导致无法及时获取应用最新使用状态;

jstat

gcutil

$JAVA_HOME/bin/jstat -gcutil VMID interval count

  • 每隔1毫秒输出
$JAVA_HOME/bin/jstat -gcutil 3548 1    
  • 每隔1秒输出,且统计五次
$JAVA_HOME/bin/jstat -gcutil 3548 1000 5
➜  ~ $JAVA_HOME/bin/jstat -gcutil 3548
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
  0.00 100.00  34.69  78.45  96.39  91.25 881491 30503.989     9  350.987 30854.976

取heap size 已使用量百分比值

➜  ~ $JAVA_HOME/bin/jstat -gcutil 3548|awk 'NR==2 {print $3}'
63.28

gccause

$JAVA_HOME/bin/jstat -gccause VMID interval count

gccapacity

$JAVA_HOME/bin/jstat -gccapacity VMID interval count

Jconsole

认证连接

JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=21812 \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=/etc/jmx/jmx-spark.password \
-Dcom.sun.management.jmxremote.access.file=/etc/jmx/jmx-spark.access \
-Dcom.sun.management.jmxremote.ssl=false"

  • 密码文件示例: $JAVA_HOME/jre/lib/management

无认证连接

JAVA_OPTS="-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.manageme
nt.jmxremote.ssl=false"

客户端

Mac & Windowns 安装配置jdk 后执行jsconsole 即可

Search

    Post Directory