什么是调优?
1.根据需求进行JVM规划和预调优
2.优化运行JVM运行环境(慢,卡顿)
3.解决JVM运行过程中出现的各种问题(OOM),减少Full GC ,最终减少STW
[STW影响用户体验和使用性能,但为了GC时,不让用户线程的执行影响对象的状态,只能减少时间,提高用户体验]
如何定位OOM问题:
- 若已经上线系统用cmdline,arthas进行在线定位
- 图形化界面用在测试时监控(压测观察)
一般不使用Jmap:过程STW,且线上系统内存庞大,Jmap执行期间对进程产生影响和卡顿。
一般不使用远程监控图形化界面,需连接主机开权限和端口。
JDK自带处理故障工具:
- jps定位具体线程
- jstack定位线程状况,重点关注waiting,blocked
- Jinfo pid 查看虚拟机各项参数
- Jstat -gc 动态观察gc情况
- Jmap -histo pid 查看有多少对象产生
Jmap -dump:format=b,file=xxx pid
设置参数HeapDump,oom时自动产生堆转储文件
- jconsole jvisualVM jprofile 图形化界面
调优步骤
。
: