深入理解Java虚拟机 第2版 周志明著(四)

第4章 虚拟机性能监控与故障处理工具

  1. jps:查看Java进程。
    jps -v:查看虚拟机启动时显示指定的参数列表。
  2. jinfo:实时查看和修改虚拟机配置信息。
    jinfo -flags PID:查看赋值过的参数
    jinfo -flag MaxHeapSize PID:查看最大堆内存
    jinfo -flag UseG1GC PID:查看是否使用G1收集器
    java -XX:+PrintFlagsFinal:查看所有参数默认值
    参数只有被标记为manageable的flags可以被实时修改
    jinfo -flag name = vlaue PID
  3. jstat:查看虚拟机性能统计信息。
    jstat -class PID 1000 10:查看某个java进程的类装载信息,每1000毫秒输出一次,共输出10次
    jstat -gc PID 1000 10:查看gc信息
  4. jstack:查看线程堆栈信息
    jstack PID
  5. jmap:生成堆转储快照(heapdump文件)
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof参数可以让虚拟机在OOM异常出现之后自动生成dump文件
    jmap -heap PID:打印出堆内存相关信息
    jmap -dump:format=b,file=heap.hprof PID:dump出堆内存相关信息

可视化工具:

  • VisualVM
    监控远端Java进程,比如监控远端tomcat,部署在阿里云服务器上的tomcat
    (1)在visualvm中选中“远程”,右击“添加”
    (2)主机名上写服务器的ip地址,比如31.100.39.63,然后点击“确定”
    (3)右击该主机“31.100.39.63”,添加“JMX”[也就是通过JMX技术具体监控远端服务器哪个Java进程]
    (4)要想让服务器上的tomcat被连接,需要改一下 bin/catalina.sh 这个文件
    注意下面的8998不要和服务器上其他端口冲突
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -
    Djava.rmi.server.hostname=31.100.39.63 -Dcom.sun.management.jmxremote.port=8998
    -Dcom.sun.management.jmxremote.ssl=false -
    Dcom.sun.management.jmxremote.authenticate=true -
    Dcom.sun.management.jmxremote.access.file=…/conf/jmxremote.access -
    Dcom.sun.management.jmxremote.password.file=…/conf/jmxremote.password"
    (5)在 …/conf 文件中添加两个文件jmxremote.access和jmxremote.password
    jmxremote.access 文件
    guest readonly
    manager readwrite
    jmxremote.password 文件
    guest guest
    manager manager
    授予权限 : chmod 600 jmxremot
    (6)将连接服务器地址改为公网ip地址
    hostname -i 查看输出情况
    172.26.225.240 172.17.0.1
    vim /etc/hosts
    172.26.255.240 31.100.39.63
    (7)设置上述端口对应的阿里云安全策略和防火墙策略
    (8)启动tomcat,来到bin目录
    ./startup.sh
    (9)查看tomcat启动日志以及端口监听
    tail -f …/logs/catalina.out
    lsof -i tcp:8080
    (10)查看8998监听情况,可以发现多开了几个端口
    lsof -i:8998 得到PID
    netstat -antup | grep PID
    (11)在刚才的JMX中输入8998端口,并且输入用户名和密码则登录成功
    端口:8998
    用户名:manager
    密码:manager
  • Arthas
    github :https://github.com/alibaba/arthas
    Arthas 是Alibaba开源的Java诊断工具,采用命令行交互模式
  • MAT
    Java堆分析器
  • GC日志分析工具
    -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps
    -Xloggc:gc.log 生成GC日志
    在线的分析工具有http://gceasy.io
    PerfMa
    GCViewer

第5章 调优案例分析实战

todo…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值