#Query the usage rate of the method area under the specified process number, jdk1.7 is perm, jdk1.8 is metaspace function get_perm_use_percent() { pid = "$ 1" // pid is the process number of the target jvm jdk = $ (ps -ef | grep $ pid | awk '{print $ 8}' | grep -v 'grep') permUsePeng = 0; if [[ $jdk == *java8* ]] then MetaspaceUse=$(/usr/local/java8/bin/jstat -gc $pid |awk 'NR==2{print $10}') MaxMetaspaceSize=$(/usr/local/java8/bin/jcmd $pid VM.flags | egrep -o "\-XX:MaxMetaspaceSize\S*") if [ ! $MaxMetaspaceSize ] then MaxMetaspaceSize=-1 return $? else MaxMetaspaceSize=${MaxMetaspaceSize#*=} be permUsePerceng=`awk 'BEGIN{ printf "%0.4f\n" ,'${MetaspaceUse}/${MaxMetaspaceSize}*1024' }'` else PermUse=$(jstat -gc $pid |awk 'NR==2{print $10}') MaxPermSize=$(jcmd $pid VM.flags | egrep -o "\-XX:MaxPermSize\S*") if [ ! $MaxPermSize ] then MaxPermSize=-1 return $? else MaxPermSize=${MaxPermSize#*=} be permUsePassSize = `awk 'BEGIN {printf"% 0.4f \ n ",' $ PermUse / $ MaxPermSize * 1024 '}'` be }