window服务器cpu过高的排查_生产服务器CPU占用率过高排查过程

本文记录了一次排查Window服务器CPU占用率高达295%的问题过程。通过分析进程、线程及堆栈,发现JVM中XStream类频繁创建导致内存泄露,解决方案是改为静态实例化XStream,从而避免内存占用过高。
摘要由CSDN通过智能技术生成

一、问题详情

现象:API接口访问耗时过长,排查发现当前节点内存使用3.9G,CPU占用率295%。

当前节点已两周没发版,怀疑内存没有释放,可能是JVM垃圾回收的问题。

二、排查过程

1、定位问题进程

进入服务器,执行TOP命令:top

发现pid为1820的进程占用了大量的CPU资源,CPU占用率高达776.1%,内存占用率也达到了29.8%。

2、定位问题线程

查看该进程的线程情况,执行命令:ps -mp pid -o THREAD,tid,time

发现该进程的TID为1820的线程占用率很高

3、查看问题线程堆栈

挑选TID为1820的线程,查看该线程的堆栈情况,

先将线程id转为16进制,执行转换命令:printf “%x\n” tid

4、查看进程的内存情况

执行命令:jstat -gcutil pid period(间隔时间) times​​​​​​​(打印次数)

5、打印线程堆栈信息

执行jstack命令:jstack pid |grep tid -A 30

6、输出异常堆栈日志文件

执行jstat命令:jstat pid>> jstat.out

7、定位日志

"http-nio-8765-exec-1

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值