第4章 虚拟机性能监控与故障处理工具
- jps:查看Java进程。
jps -v:查看虚拟机启动时显示指定的参数列表。 - jinfo:实时查看和修改虚拟机配置信息。
jinfo -flags PID:查看赋值过的参数
jinfo -flag MaxHeapSize PID:查看最大堆内存
jinfo -flag UseG1GC PID:查看是否使用G1收集器
java -XX:+PrintFlagsFinal:查看所有参数默认值
参数只有被标记为manageable的flags可以被实时修改
jinfo -flag name = vlaue PID - jstat:查看虚拟机性能统计信息。
jstat -class PID 1000 10:查看某个java进程的类装载信息,每1000毫秒输出一次,共输出10次
jstat -gc PID 1000 10:查看gc信息 - jstack:查看线程堆栈信息
jstack PID - 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…