Perm ratio of shell query target jvm

#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
}

  

Guess you like

Origin www.cnblogs.com/yuexingliang/p/12688128.html