1. 개요

  • 커피 브랜드 프로모션 지원 중에, High CPU Thread 추적을 위해 만든 스크립트

2. 설명

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash

LOG_DIR=/tmp/2022-03-31_OSC_Monitoring
#SERVER=mobile
#SERVER=mobile2
SERVER=mobile3
PID=$(ps -ef | grep java | grep -w "\-DSERVER=${SERVER}" | awk '{print $2}')
DT=$(date "+%Y%m%d_%H%M%S")

ps -eLo pid,ppid,tid,pcpu,comm | grep ${PID} | awk '{ print "pccpu: "$4" pid: "$1" ppid: "$2" ttid: "$3" comm: "$5}' | sort -n > ${LOG_DIR}/${PID}_cpu.out_${DT}
/usr/lib/jvm/java-1.8.0/bin/jstack -l ${PID} > ${LOG_DIR}/${PID}_thread.out_${DT}

${PID}_cpu.out 파일에서 ttid 를 계산기로 16진수 변환 후, ${PID}_thread.out 에서 찾는다.