性能监控调优
1.命令行工具
1.1 jps
查看系统JVM进程
jps [options] [hostid]
-
option
-
hostid:省略则本机,监控远程需要安装jstatd
1.2 jstat
查看JVM统计信息
jstat -
- option
- -t:加程序运行时间
- [-h
]:输出设定行数加表头信息 :查询间隔时间 - count:查询总次数
- 结果:
当ou上涨趋势时,可能oom
1.3 jinfo
实时查看修改JVM参数
只有标记为manageable的参数才可以被实时修改
- java -xx:+PrintFlagsFinal -version | grep manageable
jinfo [option] pid
1.4 jmap
导出内存映像文件和内存使用情况,生成heapdump文件且可以查询finalize执行队列,以及堆和方法区的信息
jmap [option] pid
- oom时自动导出
-XX:+HeapDumpOnOutOfMenoryError
-XX:HeapDumpPath=
1.5 jhat
JDK9删除 使用VisualVM代替
在本地7000端口查看dump文件分析结果
jhat [options] [hostid]
1.6 jstack
生成线程快照,堆栈集合
jstack [optinon] pid
2.JVM监控工具
JDK自带:jconsole VisualVM jmc
三方: MAT JProfiler Arthas Btrace
3.JVM参数
3.1 标准参数类型
所有JVM都要实现的功能
3.2 非标准参数
3.3 非稳定参数
主要用于调优
布尔类型: -XX:+/-
3.3.1 堆栈方法区
3.3.2 OOM相关
3.3.3 GC相关
-
Parallel
-
CMS
-
G1
-
日志
3.4 配置
java -Xms128m -jar demo.jar
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2023-07-06 Nacos
2021-07-06 qt基本程序与常用控件
2021-07-06 创建项目
2021-07-06 Qt安装