check java process heap memory in docker via bash script

By | 2020년 9월 22일

도커 안에 있는 자바 프로세스에 대해서 힙 메모리 사용량을 체크 하는 스크립트.

#!/bin/bash
ARRAY=$(docker ps --format "{{.Names}}")
SAVEIFS=$IFS   # Save current IFS
IFS=$'\n'      # Change IFS to new line
ARRAY=($ARRAY) # split to array $names
IFS=$SAVEIFS   # Restore IFS
for (( i=0; i<${#ARRAY[@]}; i++ ))
do
   printf "$i: ${ARRAY[$i]}"  
   docker exec "${ARRAY[$i]}" sh -c 'jstat -gc `pgrep java` 1000 1' | tail -n 1 | awk '{split($0,a," "); total=(a[1]+a[2]+a[5]+a[7])/1024; sum=(a[3]+a[4]+a[6]+a[8])/1024; print " : " sum "MB / " total "MB"}'
done

너무 대충 만들어서 입맛에 맞게 고쳐 쓰세요.~