专栏首页龙首琴剑庐JVM快速调优命令汇总

JVM快速调优命令汇总

CPU监控:进程和线程

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

分析 Thread Dump

  • 在线导出堆栈信息
jstack -l [pid]
# jstack -l 16837

查看GC日志

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

获取 Heap Dump

  • 事前方式(建议) JVM启动时增加两个VM Option参数:
#出现 OOME 时生成堆 dump, 生成堆文件地址
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dir/
  • 事后方式 发现程序异常前通过执行指令,直接生成当前JVM的dmp文件, pid为java程序的进程id。
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 有多少对象产生
jmap -histo  [pid]
# jmap -histo 16837 | head -20

其他方式: arthas

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

其他方式: jvisualvm mat jprofiler

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JVM垃圾回收器GC的常用参数

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

    斯武丶风晴
  • Redis分布式缓存系统Lua脚本食用指引

    Redis 为什么添加 Lua 支持 redis lua 脚本出现之前 Redis 是没有服务器端运算能力的,主要是用来存储,用做缓存,运算是在客户端进行,这里...

    斯武丶风晴
  • JVM 常用命令行参数

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

    斯武丶风晴
  • js 停止事件冒泡 阻止浏览器的默认行为

    在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”。 浏览器默认行为: 在form中按回车键就会提交表单;单击鼠标...

    蓓蕾心晴
  • JVM(JAVA虚拟机)调优及原理

    所有新生成的对象首先都是放在年轻代。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。年轻代一般分3个区,1个Eden区,2个Survivor区(from...

    良月柒
  • 通用发布全自动驾驶电动汽车 没有方向盘 可自动关门

    BI中文站 1月12日报道 通用汽车公司刚刚发布了一款全自动驾驶电动汽车,它没有方向盘,没有踏板,只有座椅和屏幕,车门可以自动关闭。这款汽车有望于2019年上路...

    企鹅号小编
  • CRM PRODUCT_MAT, BDOC和customer product id修改

    Product HT-1055 is downloaded from ERP. When you make changes in CRM for example...

    Jerry Wang
  • 【教程】谷歌浏览器移到其他盘之后,本地网页代码无法用谷歌浏览器打开的解决办法

    但是,将默认安装在C盘的谷歌浏览器移到其他盘之后,好多默认的设置就失效了,怎么办呢

    小小鱼儿小小林
  • 设计模式实战 - 简单工厂

    最可能给八卦炉下达什么样的生产命令呢? 应该是给我生产出一个黄色人种(YellowHuman类) 而不会是给我生产一个会走、会跑、会说话、皮肤是黄色的人种 ...

    JavaEdge
  • MPP(大规模并行处理)简介 转

    MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数...

    双面人

扫码关注云+社区

领取腾讯云代金券