jvm cpu过高排查实战
2018-03-08 16:40
225 查看
双十一了,头一天晚上10点左右收到阿里云cpu超过90%短信报警。第二天上班了,开始处理,步骤如下:1、top找出cpu高的java进程号95922、top -Hp 9592查看cpu占用time最高的线程编号281783、执行 printf "%x\n" 28178 获取线程十六进制地址6e12 (十六进制一定要小写)
4、执行 jstack 9592(pid)|grep -10 6e12(线程十六进制号)
"http-bio-8121-exec-199" daemon prio=10 tid=0x00007f751804b800 nid=0x6e12runnab le [0x00007f74ebcf9000]
java.lang.Thread.State: RUNNABLE
at com.ejavashop.model.seller.SellerTransportModel.getFee(SellerTransportModel.java:387)
at com.ejavashop.model.seller.SellerTransportModel.calculateTransFeeFuil (SellerTransportModel.java:312)
at com.ejavashop.model.cart.CartModel.getCartInfoByChooseId(CartModel.ja va:1134)
at com.ejavashop.service.impl.cart.CartServiceImpl.getCartInfoByChooseAn dId(CartServiceImpl.java:201)
5、排查代码SellerTransportModel.java:387 for (int i = 0; i < surplus; i += addWeight) {
price = price.add(new BigDecimal(addFee));//此线程一直在执行这一行代码。。。也就是说死循环原因导致cpu一直高
}
6、修改代码 //计算多出的钱
if(addWeight!=0){//线上死循环了
for (int i = 0; i < surplus; i += addWeight) {
price = price.add(new BigDecimal(addFee));
}
}
7、打包测试,紧急上线,over
原地址: http://blog.csdn.net/bolg_hero/article/details/53126744
4、执行 jstack 9592(pid)|grep -10 6e12(线程十六进制号)
"http-bio-8121-exec-199" daemon prio=10 tid=0x00007f751804b800 nid=0x6e12runnab le [0x00007f74ebcf9000]
java.lang.Thread.State: RUNNABLE
at com.ejavashop.model.seller.SellerTransportModel.getFee(SellerTransportModel.java:387)
at com.ejavashop.model.seller.SellerTransportModel.calculateTransFeeFuil (SellerTransportModel.java:312)
at com.ejavashop.model.cart.CartModel.getCartInfoByChooseId(CartModel.ja va:1134)
at com.ejavashop.service.impl.cart.CartServiceImpl.getCartInfoByChooseAn dId(CartServiceImpl.java:201)
5、排查代码SellerTransportModel.java:387 for (int i = 0; i < surplus; i += addWeight) {
price = price.add(new BigDecimal(addFee));//此线程一直在执行这一行代码。。。也就是说死循环原因导致cpu一直高
}
6、修改代码 //计算多出的钱
if(addWeight!=0){//线上死循环了
for (int i = 0; i < surplus; i += addWeight) {
price = price.add(new BigDecimal(addFee));
}
}
7、打包测试,紧急上线,over
原地址: http://blog.csdn.net/bolg_hero/article/details/53126744
相关文章推荐
- 生产线上mysql占CPU过高排查实战
- 关于JVM CPU资源占用过高的问题排查
- java实战CPU占用过高问题的排查及解决
- 生产线上mysql占CPU过高排查实战
- jvm cpu过高排查实战
- JVM CPU资源占用过高的问题排查
- 关于JVM CPU资源占用过高的问题排查2
- 【转】关于JVM CPU资源占用过高的问题排查
- 生产线上mysql占CPU过高排查实战
- 服务器cpu负载过高问题排查
- cpu使用时间百分比过高 排查
- linux下JVM线程负载过高问题排查
- 实战SMS的软件计数功能暨故障排查:SMS2003系列之十一
- JAVA CPU占用过高问题排查(linux)
- memCached客户端CPU过高问题的排查
- SQL Server 2012实施与管理实战指南(笔记)——Ch6连接的建立和问题排查
- java 一次CPU占用过高问题的排查及解决
- 一次线上机器load负载过高报警问题排查及其后续处理
- 实战 | 一步步排查基于业务场景的Elasticsearch难题!
- CPU load过高产生的原因及排查