首页 > 其他 > 详细

JVM问题定位

时间:2020-12-10 21:47:50      阅读:25      评论:0      收藏:0      [点我收藏+]

一.Linux 系统下 cpu 使用率过高的分析方法
1、通过 top 命令可以很明显查看出哪个进程耗cpu比较高
2.使用 top -H -p <pid> 查看进程里面的线程占用情况
3.将需要的线程ID转换为16进制格式
4.sudo jstack 25147|grep 6268

1. 查找进程

top查看进程占用资源情况

明显看出java的那个进程占用过高cpu.

2.查找线程
使用top -H -p <pid>查看线程占用情况

3.查找java的堆栈信息
将线程id转换成十六进制

#printf %x 15664

#3d30

然后再使用jstack查询线程的堆栈信息

语法:jstack <pid> | grep -a 线程id(十六进制)

jstack <pid> | grep -a 3d30

这样就找出了有问题的代码了。


二参数配置
####设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。

-Xmx20m -Xms5m 最大最小堆大小

-Xmn、-XX:NewRatio、-XX:SurvivorRatio:
-Xmn
    设置新生代大小

-XX:NewRatio
    新生代(eden+2*s)和老年代(不包含永久区)的比值

    例如:4,表示新生代:老年代=1:4,即新生代占整个堆的1/5

-XX:SurvivorRatio(幸存代)

JVM问题定位

原文:https://www.cnblogs.com/wangyingshuo/p/14116828.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!