前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM快速调优命令汇总

JVM快速调优命令汇总

作者头像
斯武丶风晴
发布2020-04-24 18:43:01
6750
发布2020-04-24 18:43:01
举报
文章被收录于专栏:龙首琴剑庐

CPU监控:进程和线程

代码语言:javascript
复制
# 观察哪个进程CPU和内存占比高
top
# 观察进程中的线程,哪个线程CPU和内存占比高
top -Hp  [pid]
# top 16837
# top -Hp 16837
  • 定位具体java进程
代码语言:javascript
复制
# 定位具体java进程
jps 
# jps -l

分析 Thread Dump

  • 在线导出堆栈信息
代码语言:javascript
复制
jstack -l [pid]
# jstack -l 16837

查看GC日志

  • 事前方式 JVM启动时增加VM Option参数:
代码语言:javascript
复制
-Xloggc:/path/to/log/dir/gc-%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCCause
  • 在线方式
代码语言:javascript
复制
# 每500个毫秒打印GC的情况 
jstat -gc [pid] 500
# jstat -gc 16837 500

获取 Heap Dump

  • 事前方式(建议) JVM启动时增加两个VM Option参数:
代码语言:javascript
复制
#出现 OOME 时生成堆 dump, 生成堆文件地址
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dir/
  • 事后方式 发现程序异常前通过执行指令,直接生成当前JVM的dmp文件, pid为java程序的进程id。
代码语言:javascript
复制
jmap -dump:format=b,file=/path/to/dir/dumpfile   [pid]
# jmap -dump:format=b,file=serviceDump.dat 16837

注意:jmap 在执行转存储jmap -dump时,JVM是暂停服务的,所以对线上的运行会产生影响

分析 Heap Dump

  • 在线查找 Heap 有多少对象产生
代码语言:javascript
复制
jmap -histo  [pid]
# jmap -histo 16837 | head -20

其他方式: arthas

  • 离线分析 Heap Dump
代码语言:javascript
复制
# 启动 http://localhost:7000/  
# 注意 -J-Xms 之间没有空格
jhat -port 7000 -J-Xmx2048m 文件名

其他方式: jvisualvm mat jprofiler

by Sven Augustus https://my.oschina.net/langxSpirit

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析 Thread Dump
  • 查看GC日志
  • 获取 Heap Dump
  • 分析 Heap Dump
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档