处理线上CPU负载过高的故障现象
如何处理线上CPU100%的故障现象
处理流程:
1.登陆线上机器top命令,查看耗费cpu的进程号,举例来说发现进程24008持续耗费资源

2.top -Hp 24008去查看持续耗费cpu的线程号24230(图示为举例来说,目前并不高)
3.printf "%x\n" 24230将线程号转为16进制,转换为5ea6
4.jstack 24008 > jstack.txt使用jmap工具将进程3997的线程堆栈打印出来
5.在jstack.txt中搜索76e5就可以看到这个持续耗费cpu的线程的堆栈信息,进而分析出
注意:jmap只能打印当前时间点的线程堆栈,线程切换比较频繁的情况下,并不好抓,所以在某些情况下需要持续观察线程号占用cpu的频率,抓起来要准一些。
其他
有些时候分析完堆栈日志后,却发现占用cpu最高的是GC线程。此时该怎么办呢?
GC不停执行,就说明内存出现了问题,如果不是JVM初始设置内存过小的情况下,基本上是程序出现了频繁创建大对象的行为,如果这个现象是突然出现,此时分析最近刚上线的代码及定时任务执行及外部系统调用导致会比较有效。如果分析不出来,需要使用jmap统计下jvm的对象,来看下对象占用比。
注意:该命令可能会造成程序假死,所以生产环境谨慎使用!!
jmap -histo 3997 >jmap2018.txt
可以根据jvm中的对象数量做下分析,哪些对象是不应该出现过大或者过多数量的,进而分析代码。
处理线上CPU负载过高的故障现象的更多相关文章
- 线上cpu使用率过高解决方案
一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. 下面我们将一步步定位问题,详尽的介绍每一步骤的相关知识. 一.通过top命令定位占用cpu高的进程 执行top命令得到 ...
- CPU负载过高异常排查实践与总结
昨天下午突然收到运维邮件报警,显示数据平台服务器cpu利用率达到了98.94%,而且最近一段时间一直持续在70%以上,看起来像是硬件资源到瓶颈需要扩容了,但仔细思考就会发现咱们的业务系统并不是一个高并 ...
- 服务器cpu负载过高问题排查
https://blog.csdn.net/MrZhangXL/article/details/77711996 第一步 :执行top命令,查出当前机器线程情况 top - 09:14:36 up 1 ...
- cpu负载过高分析
如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载? 步骤一.找到最耗CPU的进程 工具:top 方法: 执行top -c ,显示进程运行信息列表 键入P (大写p) ...
- linux 排查cpu负载过高异常
步骤一.找到最耗CPU的进程 工具:top 方法: 执行top -c ,显示进程运行信息列表 键入P (大写p),进程按照CPU使用率排序 图示: 如上图,最耗CPU的进程PID为10765 步骤二: ...
- 记录一次MySQL数据库CPU负载异常高的问题
1.起因 某日下午18:40开始,接收到滕讯云短信报警,显示数据库CPU使用率已超过100%,同时慢查询日志的条数有1500条左右. 正常情况下:CPU使用率为30%-40%之间,慢查询日志条数为0. ...
- 记处理线上记录垃圾日志 The view 'Error' or its master was not found
最近监控线上日志,网站是ASP.NET MVC 开发的,发现不少错误日志都记录同样的内容: The view 'Error' or its master was not found or no vie ...
- 线上CUP负载过高排查方法
1.top命令查看线程占据的CPU 注意:上面行的cpu是多个内核的平均CPU,不可能超过100% 下面的cpu是每个进程实际占用的cpu,可能超过100% 备注:查看多个内核cpu,只需要在输入 ...
- 一次线上CPU高的问题排查实践
一次线上CPU高的问题排查实践 前言 近期某一天上班一开电脑,就收到了运维警报,有两台服务CPU负载很高,同时收到一线同事反馈 系统访问速度非常慢,几乎无响应. 一个美好的早晨,最怕什么就来什么.只好 ...
随机推荐
- kali系统无法使用ll命令
ll命令:也就是ls -l的缩写方式. 重装kali系统之后,发现无法使用ll命令了,于是写一个笔记记录一下如何添加ll命令. 解决方法: vim ~/.bashrc 将alias ll=’ls -l ...
- P1078 文化之旅[最短路]
题目背景 本题是错题,后来被证明没有靠谱的多项式复杂度的做法.测试数据非常的水,各种玄学做法都可以通过(比如反着扫),不代表算法正确.因此本题题目和数据仅供参考. 题目描述 有一位使者要游历各国,他每 ...
- python常用内置方法
常用内建函数# 如何在遍历一个列表的同时获取当前下标? # 普通人的做法 list = [1, 2, 3, 4, 5, 6] index = 0 for i in list: print('下标%s' ...
- PWA相关代码
sw.js 文件 let CacheName = 'plus-v1'; var filesToCache = [ ]; self.addEventListener('install', functio ...
- Javascript基础(1)
1 Javascript介绍 1.1 js是一款运行在客户端的网页编程语言 1.2 组成部分 (1)ECMAScript:ECMAScript不是一门语言,而是一个标准.符合这个标准的比较常见的有:J ...
- Spring MVC框架及标签库
1.Spring MVC技术 1. 当DispatcherServlet接到请求时,他先回查找适当的处理程序来处理请求.DispatcherServlet通过一个或者多个处理程序映射,将每个请求映射到 ...
- Python 高级(二)
多继承以及MRO顺序 1. 单独调用父类的方法 # coding=utf-8 print("******多继承使用类名.__init__ 发生的状态******") class P ...
- Jfinal undertow本地运行加载静态文件
undertow部署文档中可配置静态资源也可以添加磁盘目录作为项目中得静态文件访问 undertow.resourcePath = src/main/webapp, D:/static 这样配置就可以 ...
- 入门指引之查看accesstoken
1. 测试工具查看 https://mp.weixin.qq.com/debug/ 2. 代码获取: # -*- coding: utf-8 -*- # filename: basic.py impo ...
- 008——MATLAB-xlswrite的使用方法
(一)参考文献:https://blog.csdn.net/liangjiubujiu/article/details/80455753 以矩阵A=[1 2 3 4;5 6 7 8]为例进行介绍 例1 ...



