MQ 服务占用 CPU 太高

news2025/4/4 0:06:18

文章目录

  • MQ 服务占用 CPU 太高
    • 1. 出现问题
    • 2. 分析过程
      • 1. 通过日志定位问题服务
      • 2. 查询异常服务进程、CPU、内存、IO、锁和网络
      • 3. CPU 占用过高分析
    • 3. 解决方案

MQ 服务占用 CPU 太高

1. 出现问题

  • 测试环境中,匹配业务运行时会出现响应缓慢或超时失败的情况

2. 分析过程

1. 通过日志定位问题服务

  • 根据匹配业务查询日志,发现查询房间信息的 Redis 缓存为空时会超时,这可能是由于缓存未被添加或中途被删除所致
    • 多次新开房间测试,缓存添加正常,排除添加缓存业务问题
    • 删除缓存的业务:
      • 前端关闭或 IM 端通知关闭:日志正常,排除
      • 心跳两次未更新(定时检测):一系列业务操作后、发布到 RabbitMQ 异步更新,RabbitMQ 服务的日志显示更新缓慢,更新不及时导致定时检测误判异常并删除缓存
  • 确定异常服务为 RabbitMQ 服务

2. 查询异常服务进程、CPU、内存、IO、锁和网络

  • 直接查询 RabbitMQ 的服务进程未发现问题:ps -ef | grep 'rabbitmq'

  • 使用 top 然后按 P 命令,然后使用cat /proc/cpuinfo| grep "processor"| wc -l查到机器是 32 核,CPU 负载不高:10 / 32 = 0.3125

  • 但是 RabbitMQ 的业务处理服务 rabbitmq 占用比较高:117.3%(90 - 300 % 之间)
    在这里插入图片描述

  • free -m:内存还有 5315M 空闲

  • df -l:磁盘占用很高 89%(同时还在涨)
    在这里插入图片描述

  • 阿里云流量监控未发现服务器流量异常

  • 使用 jstack、jmap、jstat 命令,在 /home/webadmin 目录下查 JVM dump 日志,JVM 内存状态正常,非 GC 原因

  • 因此问题就是

    • RabbitMQ 占用 CPU 太高
    • 磁盘占用太高

3. CPU 占用过高分析

  • 进入 rabbitmq 消息存储目录,发现该目录占用磁盘过高,猜测磁盘占用过高导致 IO 读取异常
  • 尝试清理磁盘无用数据后,速度明显变快,但不久后磁盘再次快速增长
  • 问题所在:找到磁盘占用过多的服务

3. 解决方案

  • 首先使用 root 权限,进入根目录查询大文件:du -sh * \ --exclude="proc" \ --exclude="data*" | grep G,未找到
  • 然后查询隐藏文件:du -sh .[!.]*
  • 发现其他项目组的Android包放在此目录,占用空间巨大
  • 沟通后将包打包至其他位置,同时删除Android包,磁盘占用恢复正常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/482585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

继承的相关介绍---C++

一、概念及定义 概念: 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结…

复现CVE-2023-21839

攻击机安装jdk1.8 下载jdk1.8 https://www.azul.com/downloads/?versionjava-8-lts&osubuntu&architecturex86-64-bit&packagejdk#zulu 或 wget https://cdn.azul.com/zulu/bin/zulu8.60.0.21-ca-jdk8.0.372-linux_x64.tar.gz tar -zxvf zulu8.60.0.21-ca-jdk8.…

GB/T 28181-2011、2016、2022变更对比

一、GB/T 28181-2016与GB/T 28181-2011变更对比 GB/T 28181-2016与GB/T 28181-2011相比, 除编辑性修改外主要技术变化如下: ----(1) 修改了标准名称; ----(2) 增加了媒体流TCP传输要求(见4.3.1, 5.2,附录F&#xff…

Ubuntu磁盘和目录和文件的相关操作

目录 1、目录的切换 2、查看目录及文件 3、目录的常见操作 4、文件的常见操作 5、查看文件及目录大小 6、命令查看硬盘信息 1、目录的切换 打开终端窗口(”ctrlaltt“) 一般使用(”pwd“)显示当前所在的目录 比如&#x…

【用python的QT做信号处理的界面】

文章目录 入口文件界面参数调整数据从dat解析出来的文件从界面点击打开文件夹的功能实现主要功能代码网络参数存图替换功能,比如把倒频谱替换成倒频谱2 入口文件 入口文件,主要用来实例化窗口(不重要),只要知道从这里…

电脑中病毒了怎么修复,计算机Windows系统预防faust勒索病毒方法

随着计算机系统的不断发展,我们所面对的网络安全威胁也变得越来越严重。其中,较为常见且危险的威胁就是勒索病毒。随着勒索病毒加密算法的不断升级,最近faust勒索病毒开始流行。Faust勒索病毒主要的攻击目标是Windows操作系统,一旦…

SpringBoot手册

目录 依赖管理关于各种的 start 依赖关于自动配置关于约定大于配置中的配置SpringBoot 整合 SpringMVC定制化 SpringMVC静态资源处理对上传文件的处理对异常的处理Web原生组件注入(Servlet、Filter、Listener)Interceptor 自定义拦截器DispatcherServlet…

【iOS】GCD学习

GCD的概念 GCD(Grand Central Dispatch),是有Apple公司开发的一个多核编程的解决方案,用以优化应用程序支持多核处理器,是基于线程模式之上执行并发任务。 GCD的优点 利用设备多核进行并行运算GCD自动充分使用设备的…

C语言-学习之路-03

C语言-学习之路-03 程序流程结构选择结构if语句if...else...语句三目运算符switch语句 循环结构while语句do...while语句for语句嵌套循环 跳转语句break、continue、gotobreak语句continue语句goto语句 程序流程结构 C语言支持最基本的三种程序流程结构:顺序结构、…

三、SpringMVC

三、SpringMVC 1、SpringMVC简介 1.1、什么是MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体…

REST API 详解

REST API REST(Representational State Transfer,表述性状态转移)是一种用于构建分布式系统的架构风格。REST API(Application Programming Interface,应用程序接口)是一种基于REST风格的网络API&#xff…

Filter 过滤器

Filter过滤器介绍 这里我们讲解Filter的执行流程,从下图可以大致了解到,当客户端发送请求的时候,会经过过滤器,然后才能到我们的servlet,当我们的servlet处理完请求之后,我们的response还是先经过过滤器才…

Packet Tracer - 配置交换机端口安全

Packet Tracer - 配置交换机端口安全 地址分配表 设备 接口 IP 地址 子网掩码 S1 VLAN 1 10.10.10.2 255.255.255.0 PC1 NIC 10.10.10.10 255.255.255.0 PC2 NIC 10.10.10.11 255.255.255.0 非法笔记本电脑 NIC 10.10.10.12 255.255.255.0 目标 第 1 部…

MySQL监控告警及可视化:Zabbix+Percona PMP实现(Part I)

MySQL监控告警及可视化:ZabbixPercona PMP实现(Part I) 准备工作Zabbix Server安装Zabbix Server配置conf文件配置系统服务配置Web服务配置 Zabbix Agent安装Zabbix Agent配置conf文件配置系统服务配置 准备工作 🐬软件下载&#…

ChatGPT提示词工程(五):Transforming转换

目录 一、说明二、安装环境三、转换(Transforming)1. 翻译 Translation2. 语气转换 Tone Transformation3. 格式转换 Format Conversion4. 拼写或语法检查 Spellcheck/Grammar check 一、说明 这是吴恩达 《ChatGPT Prompt Engineering for Developers》…

kubernetes安全框架RBAC

目录 一、Kubernetes 安全概述 二、鉴权、授权和准入控制 2.1 鉴权(Authentication) 2.2 授权(Authorization) 2.3 准入控制 三、基于角色的权限访问控制: RBAC 四、案例:为指定用户授权访问不同命名空间权限 一、Kubernetes 安全概述 K8S安全控…

YOLOv5 txt标签转图像标签(多个标签)

Python YOLOv5 txt标签转图像标签(多个标签 txt的数据如图所示1.读原始图像以及对应的txt文件2.获得原始图像的大小3.生成一张大小相同,黑色背景的图片4.读取txt文件,循环的增加标签5.获得不规则图形(标签)6.完整代码7…

Linux运维:makefile

一.makefile 1.makefile介绍 Makefile 是一种用于自动化构建的文件,它描述了一个软件项目的编译规则和依赖关系,并提供了一些工具来自动执行这些规则。 Makefile 的主要作用如下: 自动化编译:通过 Makefile,可以定…

使用 nvcc 的时候出现“helper_cuda.h”: No such file or directory错误该怎么办(其他xxx.h也是同样的解决方法)

今天在命令行中使用nvcc的时候,出现了“helper_cuda.h”: No such file or directory错误。这个错误信息表示:在编译的时候,找不到helper_cuda.h头文件(其他xxx.h如果也找不到,那么下面的解释和解决方法也通用&#xf…

Java流式操作——Collectors工具类

文章目录 方法实践说明一、前提条件Person类Data类 二、操作maxBy:获取流中最大元素;minBy:获取流中最小元素joining:合并,将流中的元素,以字符串的形式拼接起来summingInt:把流中的元素映射成int类型的元素&#xff0…