定位tomcat资源消耗过高

以下shell脚本为定位java进程中占用CPU的线程信息

#!/bin/bash
# 找出java中高cpu的线程信息
# author zhouzx

PID=`ps aux | sort -k3nr | grep "java" | head -1 | awk '{print $2}'`

echo "高CPU的线程ID:$PID"
ps -ef | grep $PID | grep -v "grep"

ps -mp $PID -o THREAD,tid,time | sort -k 2 -r | head -20
echo -n -e "输入线程ID:"
read f
if [ -z $f ];then
  echo "请出入线程ID!"
else
  echo "CPU占用的线程ID:$f"
  jstack "$PID" | grep `printf "%x\n" $f` -C 30
fi

最近通过以上脚本定位到工作项目中使用了log4j1.x的日志输出,导致占用了高CPU。详细请看

优化

  1. 后期的日志记录使用logback或者log4j2
  2. 不必要的日志不记录

转载于:https://my.oschina.net/u/866172/blog/2988938

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值