线上问题-CPU使用频率飙升

news/2025/2/16 6:40:49/

描述

        中午收到群内人员反馈环境访问速度慢。登录验证码打不开等问题。通过查看日志发现是kafka出现问题,无法处理消息。联系运维解决。在排查的过程中使用mobaXterm连接服务器。左下角看到CPU使用频率非常高。于是记录一下通过CPU查看程序占用情况分析问题。

过程

查看进程的占用情况

        首先使用top指令可以查到CPU使用率,进程占用CPU的比例。   #搞个连接 Linux的指令详解~~

[root@home ~]# top

        84.8 us 就是此时CPU的使用率。下面的红框则是进程占用CPU资源的排名。可以看到前几位都是Java程序且占用资源较多。

查看线程的占用情况

        这时我们排查占用率第一个Java进程(该进程的PID 28594 上图可以看到)。看看这个Java进程中线程的占用情况。

top -p  28594 -H

        这样就可以看到该进程中每个线程占用了多少CPU

获取某个线程的栈信息

        根据上图找到使用率第一的线程 PID = 29171  转为16进制  = 71f3   拼接 0x   = 0x71f3

jstack 28594 |grep A 10 0x71f3# 0x71f3  =  0x + 线程PID转16进制

        根据jstack指令可以获取到进程的栈信息。在通过grep过滤某个线程的栈信息。

总结

问题点

         1. 问题的发现是通过人员反馈。

         2. Kafka挂了

解决方案

        1. 增加监控。对中间件设备,业务服务的监控

                1.1 中间件设备的治理

                      使用zabbix(其他监控设备) 监听端口,ping,调用

                 2.2 对业务服务的治理

                      使用zabbix 监听服务端口,ping,调用健康检查接口(是否能正常响应,响应时间等)监听服务是否可用。

                      使用ELK收集服务日志。对错误的日志设置阈值。超过阈值则进行告警

                      分布式多节点部署服务。保证始终有节点提供服务。

         2. Kafka集群化分布式部署

                 2.1 kafka使用多节点集群部署。保证可用性。


http://www.ppmy.cn/news/63306.html

相关文章

JVM(类的加载与ClassLoader、双亲委派机制)

文章目录 1. 类的生命周期2. 类的加载过程3. 类加载器(classloader)3.1 类加载器的作用3.2 类加载器的分类(JDK8)3.3 双亲委派机制3.3.1 双亲委派机制优势 3.4 查看某个类的类加载器对象3.5 使用ClassLoader获取流 1. 类的生命周期 类在内存中完整的生命周期&#…

MapReduce框架原理

从源码的角度 :map --> sort —> copy --> sort -->reduce   sort —> copy --> sort属于shuffle InputFormat数据输入 切片与MapTask并行度决定机制 1)问题引出 MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个Job的…

如何安装oracle的sample schema

首先从如下的地址选择合适的版本进行下载 https://github.com/oracle-samples/db-sample-schemas/releases 如果是rac环境,最好是将这个数据库停掉,然后只启动一个instance,然后再开始安装 [Tue May 09 20:26:34][377951][oraclenshqae01adm…

Vue监听属性详细讲解

文章目录 定义要监听的属性定义 watch修改监听的属性值监听数组变化监听对象变化监听计算属性变化监听事件变化监听路由变化 在 Vue 中,可以使用 watch/$watch 方法监听数据、计算属性、事件和路由的变化,从而实现数据绑定、事件监听和路由控制等功能。需…

2022级吉林大学面向对象第二次上机测试

【注:解答全部为本人所写,仅供同学们学习时参考使用,请勿照搬抄袭!】 类的抽象、类的数据表示、类的实现、对象的使用 1、使用伪随机数加密的算法,按要求实现: 伪随机数加密的算法:根据一个给…

【Win32绘图编程,GDI绘图对象】绘图基础,位图处理,绘图消息处理,画笔,画刷,文本绘制

这一篇文章分享本人学习win32绘图编程,其中包括GDI绘图对象,绘图基础,基本图形的绘制,画笔画刷的使用,文本绘制,以及文本字体的更改。 文章目录 一.绘图基础1.BeginPaint函数2.EndPaint函数3.颜色的使用 二…

前几天面了个32岁的测试员,年薪50w问题基本都能回答上,应该刷了不少八股文···

互联网行业竞争是一年比一年严峻,作为测试工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯等大厂.....) 所以,大家就迎来了…

如何为自己的开源项目选择许可证

就结论而言,如果你很随意、不在乎,那就选择MIT协议,如果要为自己的权益提供尽可能的保障,那就GPL🛡️ 为自己的软件知识产权选择许可证的必要性在于,如果不去选择,则默认为放弃了自己的全部权利…