昨天发现JVM CPU使用过高,到网上找分析工具,找到了这个叫jkiller的东东,记录一下。
项目地址:https://github.com/54chen/jkiller
当前完整脚本如下:
#!/bin/sh export LANG="zh_CN.UTF-8"; export LC_ALL="zh_CN.UTF-8"; LOG_FILE="/tmp/jkiller.log"; JSTACK_FILE="/tmp/jstack.log"; PID="$1"; shift; i=0; j="$1"; if [ -z "${j}" ]; then j=5; fi ps -mp ${PID} -o THREAD,tid,time | sort -rn > ${LOG_FILE}; jstack ${PID} > ${JSTACK_FILE}; for LINE in `cat ${LOG_FILE}|gawk -F '-' '{print $4}'|gawk -F ' ' '{print $1}'` do i=$(($i+1)); if (($i>$j)); then break; fi; XPID=`printf "%x\n" ${LINE}`; echo -ne "\033[32m"; echo ${XPID}; echo -e "\033[34m"; grep -A 10 "0x${XPID}" ${JSTACK_FILE}; echo -e "\e[0m"; done;