json.tojsonstring 导致cpu飙高_阿里调试神器立功了!进程导致Kubernetes节点CPU飙高的排查与解决...
来源:https://www.cnblogs.com/maxzhang1985/p/12673160.html
一、发现问题
在一次系统上线后,我们发现某几个节点在长时间运行后会出现CPU持续飙升的问题,导致的结果就是Kubernetes集群的这个节点会把所在的Pod进行驱逐(调度);如果调度到同样问题的节点上,也会出现Pod一直起不来的问题。我们尝试了杀死Pod后手动调度的办法(label),当然也可以排除调度节点。但是在一段时间后还会复现,我们通过监控系统也排查了这段时间的流量情况,但应该和CPU持续占用没有关联,这时我们意识到这可能是程序的问题。
二、排查问题
定位Pod
这里使用kubectl top pods 命令确定CPU占用最高的pods都是哪些。
kubectl -n app top pods
因为问题已解决,以上图片只是举个例子。
排查工具
Arthas
我们这边使用了阿里的Arthas ,它是Alibaba开源的Java诊断工具。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到JVM的实时运行状态?
怎么快速定位应用的热点,生成火焰图?
排查问题
定位到有问题的Pod后,使用kubectl exec进入Pod容器内部:
kubectl -n app exec -it 49a89b2f-73c6-40ac-b6de-c6d0e47ace64-5d489d9c48qwc7t -- /bin/bash
在容器中下载Arthas
wget https://arthas.gitee.io/arthas-boot.jar
由于我们打包镜像中只有一个服务,所以一个Pod中也只有一个进程; 这里 1 是指PID。
java -jar arthas-boot.jar 1
执行进程看板 dashboard:
[arthas@1]$ dashboard
这里上半区显示了线程内容,我们可以看到哪个线程ID的对应情况:
比如从上面得到了线程ID,使用如下命令进入线程,如ID 12262:
[arthas@1]$ thread -n 12262
打印出线程日志:
[arthas@1]$ thread -n 12262"com.alibaba.nacos.client.Worker.addr-bj-internal.edas.aliyun.com-7362814c-538b-4c26-aa07-1fd47765a145" Id=20190 cpuUsage=7% TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d30d0a4e (in native) at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d30d0a4e at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:813)
三、解决问题
经过了排查定位到了问题,最后经过社区和阿里云伙伴的协助,发现了这个是Nacos 2.0.0.RELEASE的一个BUG。我们对Nacos客户端版本进行了升级,经过测试后,问题解决了。也加深了对Kubernetes集群调试的能力 [加油]。
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery 2.0.1.RELEASE
四、最后
通过社区和阿里云的帮助,问题成功解决。在工具方面,阿里提供的Arthas,真的是线上环境调试神器!
json.tojsonstring 导致cpu飙高_阿里调试神器立功了!进程导致Kubernetes节点CPU飙高的排查与解决...相关推荐
- windows进程管理器_系统变慢?WMI进程导致的CPU高占用解决
我们有时会遇到系统变慢的情况,查看资源任务管理窗口发现是WMI导致的CPU高占用所致.那么,WMI究竟为何物,能否解除由它导致的CPU高占用,如何解除? 1. 查明WMI的来龙去脉 WMI是Windo ...
- 怎么看服务器cpu温度命令_简单几步使用zabbix监控Linux物理服务器CPU温度
前段时间有个属于笔者维护的小机房空调故障,温度过高导致系统卡慢,多日无人发现.于是想着使用zabbix监控CPU温度并设置告警阀值,同时也能监控到风扇异常.挡风板太脏空气不畅.进程死锁导致CPU使用率 ...
- java会导致蓝屏么_原来有这么多原因会导致电脑蓝屏啊
最近有个网友问小编电脑动不动就蓝屏是什么原因,说起蓝屏小编也很是头疼,小编的第一个电脑也是动不动就蓝屏,小编为此也甚是费心.蓝屏,英文名称BSOD.从专业的角度讲,这一术语被定义为"是指当M ...
- 导致集群重启_园区网核心交换机S7706异常重启导致无线网络故障
问题现象 园区网核心交换机S7706设备异常重启,重启完成后其中一个无线信号故障,其它无线信号正常. 问题分析 1.问题现象分析 检查交换机上的重启时间点记录如下: 从该记录来看,重启原因是由于交换机 ...
- phpfpm内存越来越高_内存时序越小越好,为什么DDR1到DDR4 时序值越来越高了?
内存参数中除了容量.频率外,一般还有一组由四个用破折号分割的数字串,这就是内存的时序. 1.如何查看内存时序 购买内存时,一般参数中都会标注内存的时序信息. 使用中的内存可以用 CPUZ 进行查看. ...
- wifi卡慢延迟高_家里WIFI越用越卡?教你3个小方法,彻底解决网速慢、卡顿等问题...
相信各位小伙伴都遇到过家里Wi-Fi网络频繁卡顿的现象,当遇到这种情况是大多数人的第一反应就是"有其他人在蹭家里的Wi-Fi",为此便会将自家的Wi-Fi密码改成长串数字+复杂字母 ...
- css3span等高_支持具有CSS或IMG的iPhone或iPad 3等高dpi像素密集型“视网膜”显示器
css3span等高 I'm loving responsive design and am slowly updating all my websites to support mobile bro ...
- windows linux cpu 抢占式 时间片_阿里技术专家谈:CPU飙高,系统性能问题如何排查?...
导读:压测时或多或少都收到过CPU或者Load高的告警,如果是单机偶发性的,经常会认为是"宿主机抢占导致的",那事实是否真是如此呢?是什么引起了这些指标的飙高?网络.磁盘还是高并发 ...
- jvm 崩溃日志设置_记一次JVM疯狂GC导致CPU飙高的问题解决
背景 线上web服务器不时的出现非常卡的情况,登录服务器top命令发现服务器CPU非常的高,重启tomcat之后CPU恢复正常,半天或者一天之后又会出现同样的问题.解决问题首先要找到问题的爆发点,对于 ...
最新文章
- 牛客题霸 NC11 将升序数组转化为平衡二叉搜索树
- php文件夹重命名,php文件下载并重命名
- 前端面试知识点(所谓的面试题)(备份前端网)
- 用doss进入mysql_一键连接给你省了多少事_DOSS 听吧_音频评测-中关村在线
- 信贷系统学习总结(2)——现金贷之借贷模式与前端产品
- go Mutex (互斥锁)和RWMutex(读写锁)
- idea,Androidstudio快捷键大全,抽取成员变量快捷键
- ssms 缺少索引信息_SQLServer索引重建
- 烟道机器人_力荐顺义区清洗烟道价格多少钱值得信赖
- java read dxf xdata_DXF格式文件数据提取
- javascript飞机大战-----007爆炸效果
- jpgraph 折线图--解决中文乱码的问题(标题和图例)
- 昭阳 E43A 的笔记本电脑 开启或者关闭笔记本自带无线网卡
- 计算机系统文件命名规则,电脑新建文件夹等的默认命名如何修改?[多图]
- 羡慕华为人年薪110万?先看看华为员工的16项标准!
- (转载)有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别...
- 生意一直不愠不火的火锅店,用一招“一元套餐”竟转亏为盈?
- 估计的商是什么意思_《商》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
- KFC门店定点查询(输入城市名称即可查询)
- CISP学习——信息安全概念