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: RUNNABLE
            at 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)
    

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Acerola-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值