深入理解java虚拟机-linux中一些常见的 jvm相关命令,如jmap.jinfo,jstat,jstack(4)

 2019-12-22 10:37  阅读(1306)
文章分类:JVM

ssh设置特定用户和ip登录,虽然是个小水管服务器,也得限制下用户登录不是

/etc/ssh/sshd_config文件 添加AllowUsers liu root@1.1.249.186,192.168.1.1表示允许liu用户任何ip登录,root用户为上面的写的两个ip

jmap命令

首先是要jps命令 如果没配置环境变量,就$JAVA_HOME/bin/jps 获取java虚拟机唯一id

如果配置了变量 就忽略$JAVA_HOME/bin 直接命令就行

获取到 jps为2445

2019120001154\_1.png

jmap -heap 2445 打印堆相关的信息

2019120001154\_2.png

jmap -histo:live 2445|head -n 30 显示 前30个的实例和占用字节大小的对象

可以不加:live 加了就是存活的对象

2019120001154\_3.png

jmap -dump:live,format=b,file=a 2412

表示dump出活的对象 格式是二进制文件名为a

jinfo -flags 2412 查看jvm相关参数

jinfo -flag +PrintGCDetails 2412 开启日志(jinfo支持少部分jvm参数)

jstat -gcutil 2412 1000 3 表示大于gc信息,1秒刷新一次 刷新三次

2019120001154\_4.png

s0 from区的使用比例

s1to区使用比例

E eden使用比例

O老年代使用比例

P持久代使用比例

YGC minorGC发生的次数 YGCT总共耗时

FGC fullGC发送的次数 FGCT总共耗时

GCT YGC+FGC

jstat -gc 2412

2019120001154\_5.png

jstack -l 2412 打印栈相关的信息

top -Hp 2412 指定进程2412显示信息

或者使用命令 ps -mp 2412 -o THREAD,tid,time |sort -nr

-m显示所有执行 -p指定进程 -o 自定义输出 ,sort -n表示按照大小排序,-r倒序

2019120001154\_6.png

由于java中线程id使用十六进制,故 printf “%x” 2422

获取到的16进制的是976 打印出日志分析

2019120001154\_7.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 深入理解java虚拟机-linux中一些常见的 jvm相关命令,如jmap.jinfo,jstat,jstack(4)

相关推荐