jstat의 정보를 출력하는 쉘 스크립트


#!/bin/bash

source /home/shell/env.sh

#JAVA_WHERE="/usr/bin"
#JavaNames_gc=("대상 프로세스 이름")

for JavaName in "${JavaNames_gc[@]}"
do

# 검색되는 프로세스들의 PID를 추출
pid=$(ps aux | grep $JavaName | grep -v grep | awk '{print $2}')

# pid가 없을 경우 1 출력 후 종료
if [ -z "$pid" ]; then
    echo 1
    exit 0
fi

# jstat 정보들을 출력
result=$("$JAVA_WHERE"/jstat -gc "$pid" | tail -n 1 | awk '{print ($3+$4+$6+$8)/($1+$5+$7)*100')
HEAP_MEMORY_USAGE=$(printf "%.0f" "$result")

  • jstat -gc 명령어를 사용하여 Java 프로세스의 GC 통계를 가져옵니다.
  • 이를 통해 힙 메모리 사용량을 계산


GC_COUNT=$("$JAVA_WHERE"/jstat -gcold "$pid" | tail -n 1 | awk '{print $8}')

  • jstat -gcold 명령어를 사용하여 Java 프로세스의 이전 GC 통계를 가져와 GC 횟수를 계산


echo $pid $JavaName "heap usage : " $HEAP_MEMORY_USAGE "FCCount : " $GC_COUNT

done


더보기

#!/bin/bash

source /home/shell/env.sh

#JAVA_WHERE="/usr/bin"
#JavaNames_gc=("대상 프로세스 이름")

for JavaName in "${JavaNames_gc[@]}"
do

# 검색되는 프로세스들의 PID를 추출
pid=$(ps aux | grep $JavaName | grep -v grep | awk '{print $2}')

# pid가 없을 경우 1 출력 후 종료
if [ -z "$pid" ]; then
    echo 1
    exit 0
fi

# jstat 정보들을 출력
result=$("$JAVA_WHERE"/jstat -gc "$pid" | tail -n 1 | awk '{print ($3+$4+$6+$8)/($1+$5+$7)*100')
HEAP_MEMORY_USAGE=$(printf "%.0f" "$result")

GC_COUNT=$("$JAVA_WHERE"/jstat -gcold "$pid" | tail -n 1 | awk '{print $8}')

echo $pid $JavaName "heap usage : " $HEAP_MEMORY_USAGE "FCCount : " $GC_COUNT

done

'리눅스' 카테고리의 다른 글

Tomcat 주요 설정 파일 구성  (0) 2024.09.23
WEB, WAS 연동  (0) 2024.05.29
모니터링 쉘 스크립트 만들기(14)  (0) 2024.05.29
모니터링 쉘 스크립트 만들기(13)  (0) 2024.05.29
모니터링 쉘 스크립트 만들기(12)  (0) 2024.05.29

+ Recent posts