600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > jvm如何排查生产环境cpu飙高的问题

jvm如何排查生产环境cpu飙高的问题

时间:2019-03-20 07:08:46

相关推荐

jvm如何排查生产环境cpu飙高的问题

文章目录

一、生产环境 cpu 飙高产生的原因?1. CAS 自旋没有控制自旋次数2. 死循环3. 阿里云 Redis 被注入挖矿程序4. 服务器被 DDOS 工具攻击二、windows环境下如何排查cpu飙高问题2.1. 任务管理器2.2. jvisualvm三、环境下如何排查cpu飙高问题3.1. 监控命令3.2. 使用 arthas3.3. 服务器监控系统3.4. 第三方监控软件四、linux环境下cpu飙高实战4.1. cpu飙高测试类4.2. 上传测试类4.3. 编译测试类4.4. 执行测试类4.5. 使用arthas排查cpu飙高问题
一、生产环境 cpu 飙高产生的原因?
1. CAS 自旋没有控制自旋次数

解决方案:设定固定自旋次数

2. 死循环

解决方案: 全面考虑业务场景。设定退出标志条件。限制循环的次数

3. 阿里云 Redis 被注入挖矿程序

解决方案:Redis 端口不要能够被外网访问;

4. 服务器被 DDOS 工具攻击

解决方案:通过限流、ip 黑名单、图形验证码防止机器模拟攻击

二、windows环境下如何排查cpu飙高问题
2.1. 任务管理器

win操作系统,打开任务管理器,查看哪个进行占用cpu比较高

2.2. jvisualvm

使用jvisualvm.exe排查cpu标高问题

三、环境下如何排查cpu飙高问题
3.1. 监控命令

linux操作系统,查看进程占用cpu标高,使用

top -c

3.2. 使用 arthas

先找到服务器jvm运行的进程列表,然后,选择监控的指定jvm进程,最后,找出此进程中线程cpu占比前三的线程信息。

3.3. 服务器监控系统

比如说:阿里云或者腾讯云 CPU飙高,阈值70%~85% --发送告警邮件

服务器集群化,每一台服务器都会监控 --发送告警邮件

运维人员先知道那台服务器节点cpu飙高,例如:192.100.100.100 cpu飙高75%,通知开发负责人配合排查该服务器进行中哪一个线程导致cpu飙高。

3.4. 第三方监控软件

大的公司第三方监控软件,通过平台查询bpm+(xxx平台现有监控)

四、linux环境下cpu飙高实战
4.1. cpu飙高测试类

public class Java04 {public static void main(String[] args) {new Thread(()->{while (true){System.out.println("1111111");}},"录单-thread").start();}}

4.2. 上传测试类
4.3. 编译测试类

javac Java04.java

4.4. 执行测试类

java Java04

springboot项目执行java -jar xxxjar包名称,发起模拟请求即可

4.5. 使用arthas排查cpu飙高问题

https://gblfy./article/details/123308455

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。