JVM实战
JVM参数
1.标准参数,不会随着jdk版本变化
java -version
2.-x参数,非标准参数,随着jdk版本变动
3.-xx参数
4.其他参数
查看所有参数,在idea中配置好后启动项目,会打印出所有的参数
参数设置
调优,jvm参数
命令
jps 查看java当前进程
jinfo 查看或者修改jvm参数 jinfo -flag MaxHeapSize 60890
实施修改jvm参数 jinfo -flag name=value PID [条件] {manageable}
jstat:jstat -gc 60890 1000
jstack 查看线程堆栈信息 jstack PID 排查线程问题(比方死锁),容易排查问题。
堆信息
jmap -heap PID
什么样的对象占用的内存空间比较大,根据堆信息排查
dump文件
jmap -dump:format=b,file=heap.hprof PID
会生成文件,借助工具打开,但是一般不会手动dump,而是设置一下,在发生oom时候进行dump文件,在idea中设置一下参数
命令太麻烦,我们可以使用工具,如何连接到远端
首先远端tomcat中
vim catalina.sh
新增文件,给文件授权
查看远端内网ip,要和公网ip进行映射(阿里云服务器)
vi /etc/hosts
查看防火墙
启动tomcat
然后使用工具进行远程连接
还有arthas(阿里的)
调优
1-堆
工具,MAT,分析内存
在线工具:perfma
2-垃圾回收
GC日志查看,生成gc.log,对gc进行调优,吞吐量,停顿时间
用工具进行日志分析 gcviewer
在线工具 GCeasy
选择垃圾收集器,观察吞吐量和停顿时间的最佳值(下一篇介绍)