文章目录

  • 一、生产环境 cpu 飙高产生的原因?
    • 1. CAS 自旋没有控制自旋次数
    • 2. 死循环
    • 3. 阿里云 Redis 被注入挖矿程序
    • 4. 服务器被 DDOS 工具攻击
  • 二、windows环境下如何排查cpu飙高问题
    • 2.1. 任务管理器
    • 2.2. jvisualvm
  • 三、环境下如何排查cpu飙高问题
    • 3.1. 监控命令
    • 3.2. 使用 arthas
    • 3.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.blog.csdn.net/article/details/123308455

jvm如何排查生产环境cpu飙高的问题相关推荐

  1. 生产环境CPU飙高问题解决,记一次完整解决过程

    一.发现问题 前段时间我们新上了一个新的应用,因为流量一直不大,集群QPS大概只有5左右,写接口的rt在30ms左右. 因为最近接入了新的业务,业务方给出的数据是日常QPS可以达到2000,大促峰值Q ...

  2. Arthas排查生产环境CPU飚高问题

    启动Arthas java -jar arthas-boot.jar 执行dashboard dashboard 线程 35 和 12042 不正常 CUP 占用 49% 定位代码行 thread 3 ...

  3. 你要偷偷学会排查线上 CPU 飙高的问题,然后惊艳所有人!

    作者 l Hollis 来源 l Hollis(ID:hollischuang) 前段时间我们新上了一个新的应用,因为流量一直不大,集群QPS大概只有5左右,写接口的rt在30ms左右. 因为最近接入 ...

  4. 生产环境RedisCPU飙高怎么办

    生产环境99%的问题来自于变更,出现问题立即拉起所有相关人员同步问题 问题发生时间点 出现问题的集群 问题影响服务 问题影响的业务 事中排查处理(并行) 变更排查,变更包括代码发布.配置参数变更.机器 ...

  5. 简单排查java应用CPU飙高的线程问题

    原文地址:https://www.cnblogs.com/zyhxhx/p/4564953.html 1. 获取要查看的进程的ID ps aux | grep xxx 2. 查看此进程下的线程信息 t ...

  6. 一次nacos 导致的 CPU 飙高问题

    序 今天下午突然 出现 测试环境 cpu飙高,干到了 60%,其他项目 响应时间明显变长...有点吓人,不想背锅 项目背景 出问题的项目是 需要连接各个不同nacos 和不同的 namespace 进 ...

  7. JVM中如何排查CPU飙高的问题

    1.虚拟机对象布局 布局:对象头.实例数据.对齐填充 对象头: Mark Word 8字节,hashcode值.GC分代信息.偏向锁信息:                       Class Po ...

  8. 面试官:线上服务CPU飙高怎么排查?

    用jstack排查 先执行top,找到CPU占用比较高的进程 jstack 进程id > show.txt 找到进程中CPU占用比较高的线程,线程id转为16进制 到show.txt文件中根据线 ...

  9. 记一次jvm疯狂gc导致CPU飙高的问题解决

    在环境上遇到tomcat频繁gc导致cpu load飙高的问题,本来想自己写一个文章的,看到这个偷懒转载一下. 线上web服务器不时的出现非常卡的情况,登录服务器top命令发现服务器CPU非常的高. ...

  10. CPU 飙高问题排查和解决方法

    摘要 本文档记录了排查 CPU 飙高问题的处理过程和解决方法,从多个方面进行分析和排查. 问题简述 在一个生产环境中发现 CPU 飙高问题,但是无法确定问题的具体原因. 排查方法 使用 jstack ...

最新文章

  1. Quartz.Net cron表达式详解
  2. Laravel 5.5 的错误异常处理机制以及应用实例
  3. Hibernate5笔记7--Hibernate缓存机制
  4. android studio mac svn插件,mac下Android studio如何使用SVN进行版本控制?
  5. jquery的html代码中a的onclick的正确显示的代码
  6. vs2017python找不到包_关于Python在VS2017版中编译C源代码出现的各种问题解决方法...
  7. 【重复制造精讲】REM Pull List 拉料单简介
  8. node.js request get 请求怎么拿到返回的数据_NodeJS运维: 从 0 开始 Prometheus + Grafana 业务性能指标监控...
  9. 轻量级锁的加锁和解锁逻辑-自旋锁
  10. Stata和Matlab联合处理金融数据
  11. C语言丨格式化屏幕输出(二)——日历
  12. python语言指令大全_Python语言----linux常用命令(14)
  13. Python 父类调用子类方法
  14. Matlab遗传算法
  15. ROSCon 2019 机器人操作系统国际盛会
  16. 乐观的态度使工作充满激情
  17. oracle怎么绑定vue,Oracle AutoVue 安装与配置教程,oracleautovue
  18. 【机房重构】C#子窗体关闭父窗体
  19. mgo简介以及使用说明
  20. java 分割字符串(多种方法)

热门文章

  1. java hl7_java-发送HL7消息后何时关闭并重新打开套接...
  2. 【C语言】有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出,问最后留下的人是原来第几号。
  3. 2014年十大云计算发展趋势分析及预测
  4. 微信小程序Scope参数错误或没有Scope权限的处理方法
  5. 专业家庭影院功放推荐-数字功放芯片
  6. HTML+CSS大作业——水果介绍-橙子之家(6页) HTML+CSS+JavaScript 学生dreamweaver网页设计作业成品
  7. 大写字母转换成小写字母
  8. 资源管理器关闭了怎么打开
  9. pH响应UV交联壳聚糖水凝胶/氨基葡聚糖基生物杂化水凝胶NMPA-CS壳聚糖水凝胶的制备
  10. 计算机键盘练习,电脑键盘指法练习