jvm如何排查生产环境cpu飙高的问题
文章目录
- 一、生产环境 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飙高的问题相关推荐
- 生产环境CPU飙高问题解决,记一次完整解决过程
一.发现问题 前段时间我们新上了一个新的应用,因为流量一直不大,集群QPS大概只有5左右,写接口的rt在30ms左右. 因为最近接入了新的业务,业务方给出的数据是日常QPS可以达到2000,大促峰值Q ...
- Arthas排查生产环境CPU飚高问题
启动Arthas java -jar arthas-boot.jar 执行dashboard dashboard 线程 35 和 12042 不正常 CUP 占用 49% 定位代码行 thread 3 ...
- 你要偷偷学会排查线上 CPU 飙高的问题,然后惊艳所有人!
作者 l Hollis 来源 l Hollis(ID:hollischuang) 前段时间我们新上了一个新的应用,因为流量一直不大,集群QPS大概只有5左右,写接口的rt在30ms左右. 因为最近接入 ...
- 生产环境RedisCPU飙高怎么办
生产环境99%的问题来自于变更,出现问题立即拉起所有相关人员同步问题 问题发生时间点 出现问题的集群 问题影响服务 问题影响的业务 事中排查处理(并行) 变更排查,变更包括代码发布.配置参数变更.机器 ...
- 简单排查java应用CPU飙高的线程问题
原文地址:https://www.cnblogs.com/zyhxhx/p/4564953.html 1. 获取要查看的进程的ID ps aux | grep xxx 2. 查看此进程下的线程信息 t ...
- 一次nacos 导致的 CPU 飙高问题
序 今天下午突然 出现 测试环境 cpu飙高,干到了 60%,其他项目 响应时间明显变长...有点吓人,不想背锅 项目背景 出问题的项目是 需要连接各个不同nacos 和不同的 namespace 进 ...
- JVM中如何排查CPU飙高的问题
1.虚拟机对象布局 布局:对象头.实例数据.对齐填充 对象头: Mark Word 8字节,hashcode值.GC分代信息.偏向锁信息: Class Po ...
- 面试官:线上服务CPU飙高怎么排查?
用jstack排查 先执行top,找到CPU占用比较高的进程 jstack 进程id > show.txt 找到进程中CPU占用比较高的线程,线程id转为16进制 到show.txt文件中根据线 ...
- 记一次jvm疯狂gc导致CPU飙高的问题解决
在环境上遇到tomcat频繁gc导致cpu load飙高的问题,本来想自己写一个文章的,看到这个偷懒转载一下. 线上web服务器不时的出现非常卡的情况,登录服务器top命令发现服务器CPU非常的高. ...
- CPU 飙高问题排查和解决方法
摘要 本文档记录了排查 CPU 飙高问题的处理过程和解决方法,从多个方面进行分析和排查. 问题简述 在一个生产环境中发现 CPU 飙高问题,但是无法确定问题的具体原因. 排查方法 使用 jstack ...
最新文章
- Quartz.Net cron表达式详解
- Laravel 5.5 的错误异常处理机制以及应用实例
- Hibernate5笔记7--Hibernate缓存机制
- android studio mac svn插件,mac下Android studio如何使用SVN进行版本控制?
- jquery的html代码中a的onclick的正确显示的代码
- vs2017python找不到包_关于Python在VS2017版中编译C源代码出现的各种问题解决方法...
- 【重复制造精讲】REM Pull List 拉料单简介
- node.js request get 请求怎么拿到返回的数据_NodeJS运维: 从 0 开始 Prometheus + Grafana 业务性能指标监控...
- 轻量级锁的加锁和解锁逻辑-自旋锁
- Stata和Matlab联合处理金融数据
- C语言丨格式化屏幕输出(二)——日历
- python语言指令大全_Python语言----linux常用命令(14)
- Python 父类调用子类方法
- Matlab遗传算法
- ROSCon 2019 机器人操作系统国际盛会
- 乐观的态度使工作充满激情
- oracle怎么绑定vue,Oracle AutoVue 安装与配置教程,oracleautovue
- 【机房重构】C#子窗体关闭父窗体
- mgo简介以及使用说明
- java 分割字符串(多种方法)
热门文章
- java hl7_java-发送HL7消息后何时关闭并重新打开套接...
- 【C语言】有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出,问最后留下的人是原来第几号。
- 2014年十大云计算发展趋势分析及预测
- 微信小程序Scope参数错误或没有Scope权限的处理方法
- 专业家庭影院功放推荐-数字功放芯片
- HTML+CSS大作业——水果介绍-橙子之家(6页) HTML+CSS+JavaScript 学生dreamweaver网页设计作业成品
- 大写字母转换成小写字母
- 资源管理器关闭了怎么打开
- pH响应UV交联壳聚糖水凝胶/氨基葡聚糖基生物杂化水凝胶NMPA-CS壳聚糖水凝胶的制备
- 计算机键盘练习,电脑键盘指法练习