当前位置: 首页 > news >正文

Linux下java服务占用cpu过高如何处理

Linux下java服务占用cpu过高如何处理

  1. top命令查看进程信息

    top
    

    image-20230224140824219

  2. 按下shift+p,按cpu使用率排行,可见进程1932占用最高,并且是一个java服务

    image-20230224141028388

  3. 使用jps命令确认java服务

    [root@VM-16-16-centos ~]# jps
    1011 Jps
    9462 yuan_back-0.0.1-SNAPSHOT.jar
    1932 spigot-1.18.jar
    
  4. 查找异常进程中的异常线程

    top -H -p [pid]
    

    image-20230224141410194

  5. 将异常线程的pid转为16进制

    printf "%x\n" pid
    
    [root@VM-16-16-centos ~]# printf "%x\n" 2035
    7f3
    
  6. 使用jstack定位异常线程代码

    jstack [进程pid] | grep -A 10 [16进制线程pid]
    
    [root@VM-16-16-centos ~]# jstack 1932 | grep -A 10 7f3
    "Server thread" #22 prio=5 os_prio=0 cpu=690162281.71ms elapsed=4553857.35s tid=0x00007ff5ee745ac0 nid=0x7f3 runnable  [0x00007ff6019b9000]java.lang.Thread.State: RUNNABLEat net.minecraft.world.level.block.BlockFire.a(BlockFire.java:227)at net.minecraft.world.level.block.state.BlockBase$BlockData.a(BlockBase.java:911)at net.minecraft.server.level.WorldServer.d(WorldServer.java:776)at net.minecraft.server.level.WorldServer$$Lambda$4882/0x0000000801800678.accept(Unknown Source)at net.minecraft.world.ticks.TickListServer.a(SourceFile:215)at net.minecraft.world.ticks.TickListServer.a(SourceFile:98)at net.minecraft.server.level.WorldServer.a(WorldServer.java:341)at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1300)at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:428)
    

    这样就定位到异常代码,并可以进行具体分析了

http://www.lryc.cn/news/18746.html

相关文章:

  • ros下用kinectv2运行orbslam2
  • MVP简单模型搭建【架构】
  • 若依ruoyi框架实现目录树与查询页面联动
  • Laravel框架学习笔记——Laravel环境配置及安装(Ubuntu20.04为例)
  • 模拟百度翻译-课后程序(JAVA基础案例教程-黑马程序员编著-第六章-课后作业)
  • 自然语言处理(NLP)之求近义词和类比词<MXNet中GloVe和FastText的模型使用>
  • 2023年CDGA考试-第13章-数据质量(含答案)
  • ASEMI高压MOS管ASE65R330参数,ASE65R330图片
  • LeetCode动态规划经典题目(九):子序列、子数组问题
  • 如何利用有限的数据发表更多的SCI论文?——利用ArcGIS探究环境和生态因子对水体、土壤和大气污染物的影响
  • 六【 SpringMVC框架】
  • 【BBuf的CUDA笔记】八,对比学习OneFlow 和 FasterTransformer 的 Softmax Cuda实现
  • python 类对象的析构释放代码演示
  • Hadoop Shell常用命令
  • Android中级——色彩处理和图像处理
  • C++类和对象:类的定义、类对象的存储、this指针
  • 代码随想录算法训练营第三十九天 | 62.不同路径,63. 不同路径 II
  • 数据库复习3
  • 顺序表的增删查改
  • jupyter matplotlib中文乱码解决
  • Smtplib之发邮件模块
  • Android 适配手机和平板
  • 时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测
  • 分阶段构建golang运行环境Dockerfile镜像
  • Vue-cli脚手架在做些什么(源码角度分析)
  • 【Nginx】|入门连续剧——安装
  • 从0开始学python -38
  • 算法设计与分析期末考试复习(二)
  • 九龙证券|4D毫米波雷达成市场新宠,相关概念股大涨,会贡献多少业绩?
  • Git天天用,不得不看的那些事