线上常见问题排查之CPU过高

2023-11-20

目前应用程序基本是Java,所以需要登录docker容器内部执行jstack命令打印堆栈信息再分析。

确认目标进程

  • 执行top命令查看CPU占用情况,找出CPU占用高的进程ID。
PS:输入大写P即可按照CPU占比排序进程(即 Shift + p)
# top

  • 找出对应进程信息
# ps -ef|grep 进程号

登录容器

  • 查看容器ID
# sudo docker ps -a
  • 进入容器
# sudo docker exec -it 容器ID bash

打印堆栈信息

  • top命令查看容器内进程ID
  • 打印线程堆栈
    • 必须切换至admin用户(进程是admin启动的)
    • jstack需要绝对路径(容器admin用户的PATH没有包含JAVA路径)
    • 输出的日志文件需要放在 /home/admin/${应用名}/logs 目录下,方便后面拷贝
# sudo -u admin /opt/taobao/java/bin/jstack -l 37 > /home/admin/busuac/logs/busuac.jstack.log

拷贝文件

退出容器,在宿主机ECS上执行mv命令将文件拷贝至个人家目录,再sftp从家目录下载文件即可
  • 源文件就是上一步生成的
  • 目标路径是个人的家目录(即命令中的~)
# cp /home/admin/busuac/logs/busuac.jstack.log ~

如何分析jstack

jstack文件就是一堆线程信息,如何确定哪个线程占比高?
  • 在容器里使用top命令看进程对应的线程堆栈
# top -H p 进程ID
  • 在jstack文件里找占比高的线程
    • 将第一步的PID换算成16进程,如 461 换算出16进制是 0x1cd(小写)
    • 在生成的jstack文件里查找 0x1cd对应的线程再分析原因
    如图所示,基本确认进程是在解压缩文件消耗大量CPU

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线上常见问题排查之CPU过高 的相关文章

随机推荐

  • MySQL中的DML、DDL、DCL到底是什么玩意呢?

    个人主页 极客小俊 作者简介 web开发者 设计师 技术分享博主 希望大家多多支持一下 我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 引言 一直以来 很多人分不清这三个东西到底是什么简称 代表什么 至在面试中遇到可能会
  • nginx的location、root、alias指令用法和区别

    亲测可用 若有疑问请私信 nginx指定文件路径有两种方式root和alias 指令的使用方法和作用域 root 语法 root path 默认值 root html 配置段 http server location if alias 语法
  • Arduino动手做(48)---三轴ADXL345模块

    37款传感器与模块的提法 在网络上广泛流传 其实Arduino能够兼容的传感器模块肯定是不止37种的 鉴于本人手头积累了一些传感器和模块 依照实践 动手试试 出真知的理念 以学习和交流为目的 这里准备逐一做做实验 不管能否成功 都会记录下来
  • 第十二届蓝桥杯 2021年省赛真题 (Java 大学C组) 第二场

    蓝桥杯 2021年省赛真题 Java 大学C组 第二场 A 浮点数 B 求余 C 双阶乘 D 格点 E 整数分解 F 3 的倍数 G 特殊年份 H 小平方 I 完全平方数 J 负载均衡 A 浮点数 题目 问题描述 IEEE 754 规定一个
  • 关于HTML基本标签及结构详解

    本文主要介绍了HTML基本标签及结构详解 本文给大家介绍的非常详细 对大家的学习或工作具有一定的参考借鉴价值 需要的朋友可以参考下 1 HTML概述 1 HTML 超文本标记语言 是一种标识性语言 非编程语言 不能使用逻辑运算 通过标签将网
  • 吴恩达 deeplearning.ai课程-卷积神经网络 (2)深度卷积模型-实例探究

    参考来源 https blog csdn net red stone1 article details 78769236 https blog csdn net koala tree article details 78531398 有关C
  • python自动化笔记(九)文件操作

    文件的打开 file open test txt w encoding utf 8 参数 文件名 访问模式 write 默认为read file write hello python 删除原有内容 并写入 ret file read 读取文
  • Flutter使用百度定位经纬度数据正常,详细地址为null

    Flutter使用百度定位经纬度数据正常 详细地址为null 更新至2021 09 07 一 问题 1 使用百度定位 插件返回的数据中经纬度有正常值 其他地址信息都为null 二 分析原因 1 在wifi或移动网络没有 不好的情况下 会出现
  • 自动注册appleid

    1 通过猴油注册脚本 用js填写表单 问题 由于apple官网采用了自己封装的mvvm框架 如果只是赋值的话 还不能把视图上的数据更新到model上 必须触发一下表单元素的input事件或者change事件完成model的更新 CSP网站安
  • 孤儿进程和僵尸进程

    作者 华清远见讲师 前段时间 由于研究经典面试题 把孤儿进程和僵尸进程也总结了一下 我们有这样一个问题 孤儿进程和僵尸进程 怎么产生的 有什么危害 怎么去预防 下面是针对此问题的总结与概括 一 产生的原因 1 一般进程 正常情况下 子进程由
  • vue 表格表头内容居中

    放入
  • elasticsearch的object类型和动态映射

    我们需要讨论的最后一个自然JSON数据类型是对象 object 在其它语言中叫做hash hashmap dictionary 或者 associative array 内部对象 inner objects 经常用于在另一个对象中嵌入一个实
  • node mysql高级用法_nodejs中mysql用法

    1 建立数据库连接 createConnection Object 方法 该方法接受一个对象作为参数 该对象有四个常用的属性host user password database 与php中链接数据库的参数相同 属性列表如下 host 连接
  • Xray使用教程

    简介 Xray是长亭科技开发的一款漏扫工具 支持多种扫描方式和漏洞类型 可自定义POC Proof of Concept 概念验证 即漏洞验证程序 俺是在 乌雲安全 看到了这个工具的使用 作为一个脚本小子初学者 这里做一下笔记 使用 web
  • NVDLA系列之C-model:cvif<99>

    NV NVDLA cvif cpp WriteRequest sdp2cvif void NV NVDLA cvif WriteRequest sdp2cvif uint64 t base addr uint64 t first base
  • 通过递归,实现数组转树

    一 为什么需要数组转树 当我们做后台管理系统时难免会遇到关于公司组织架构这样的模块 一个部门下会有好几个小部门 这时我们就可以运用树形图来更好地进行查看 下面简单举例 将数组 const arr id 1 pid 0 name 生鲜 id
  • linux安装分区详解lvm,Linux下LVM的配置详解

    LVM是Logical Volume Manager 逻辑卷管理器 的简写 它为主机提供了更高层次的磁盘存储管理能力 LVM可以帮助系统管理员为应用与用户方便地分配存储空间 在LVM管理下的逻辑卷可以按需改变大小或添加移除 另外 LVM可以
  • 【正点原子探索者STM32F407开发板例程连载+教学】第30章 SPI通信实验

    第三十章 SPI 实验 mw shl code c true 1 硬件平台 正点原子探索者STM32F407开发板 2 软件平台 MDK5 1 3 固件库版本 V1 4 0 mw shl code 本章我们将向大家介绍STM32F4的SPI
  • upload-labs通关(Pass-06~Pass-10)

    目录 Pass 06 Pass 07 Pass 08 Pass 09 Pass 10 Pass 06 上传sh php失败 burp中将抓到的包send to repeater 修改filename为sh xxx发现可以上传成功 说明是黑名
  • 线上常见问题排查之CPU过高

    目前应用程序基本是Java 所以需要登录docker容器内部执行jstack命令打印堆栈信息再分析 确认目标进程 执行top命令查看CPU占用情况 找出CPU占用高的进程ID PS 输入大写P即可按照CPU占比排序进程 即 Shift p