jdk8飞行记录器配置

Posted 运维从入门到放弃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk8飞行记录器配置相关的知识,希望对你有一定的参考价值。

jdk8提供了jmc工具,应该比visualvm厉害吧

下面贴一份tomcat的配置,自己留个备份,把下面的内容粘贴到tomcat setenv.sh就可以了

nowday=`date +%Y%m%d_%H%M%S`
test -d ../gclogs || mkdir ../gclogs

if [ -r "$CATALINA_BASE/bin/setenv_custom.sh" ]; then
  . "$CATALINA_BASE/bin/setenv_custom.sh"
elif [ -r "$CATALINA_HOME/bin/setenv_custom.sh" ]; then
  . "$CATALINA_HOME/bin/setenv_custom.sh"
fi

if [ -z $CATALINA_HEAP ];then
    CATALINA_HEAP="-Xms7g -Xmx7g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize=128m"
fi
if [ -z $CATALINA_STACK ];then
    CATALINA_STACK="-Xss1m"
fi

if [ -z $CATALINA_GC ];then
    CATALINA_GC="-XX:MaxTenuringThreshold=4 -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=8 -XX:CMSInitiatingOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrent"
fi

if [ -z $CATALINA_LOG ];then
    CATALINA_LOG="-XX:-OmitStackTraceInFastThrow -XX:+PrintFlagsFinal -XX:+PrintCommandLineFlags -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -Xloggc:../gclogs/gc.log.$nowday"
fi

if [ -z $CATALINA_COMPILER ];then
    CATALINA_COMPILER="-XX:CICompilerCount=6"
fi


if [[ ! -z "$JMX_PORT" && ! -z "$JMX_HOST" ]]; then
    CATALINA_EXTRA="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=${JMX_PORT} -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=${JMX_HOST} -Dcom.sun.management.jmxremote.rmi.port=${JMX_PORT}"
    if [[ ! -z "$JMX_LOGIN" ]]; then
        arr=(${JMX_LOGIN//:/ })
        JMX_USER=${arr[0]}
        JMX_PASS=${arr[1]}
        echo "$JMX_USER readwrite  create com.sun.management.*,com.oracle.jrockit.*  unregister" >> ../conf/jmxremote.access
        echo "$JMX_USER $JMX_PASS" >> ../conf/jmxremote.password
        chmod 400 ../conf/jmxremote.access ../conf/jmxremote.password
        CATALINA_EXTRA+=" -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access "
    else
        CATALINA_EXTRA+=" -Dcom.sun.management.jmxremote.authenticate=false"
    fi
fi

if [[ ! -z "$JFR" ]];then
    CATALINA_EXTRA+=" -XX:+UnlockCommercialFeatures -XX:+FlightRecorder"
fi

if [ -z $CATALINA_OPTS ]; then
    CATALINA_OPTS="$CATALINA_EXTRA $CATALINA_HEAP $CATALINA_STACK $CATALINA_GC -server $CATALINA_LOG $CATALINA_COMPILER"
fiJPDA_ADDRESS=8787
JPDA_SUSPEND=n

echo "using catalina jvm flags:$CATALINA_OPTS"

 脚本里的变量设置环境变量就可以了,其实是为了docker-compose启动方便配置

以上是关于jdk8飞行记录器配置的主要内容,如果未能解决你的问题,请参考以下文章

java飞行记录器连接错误

Java Mission Control:飞行记录器抛出:javax.naming.ServiceUnavailableException

centos7配置jdk8环境变量

CSP核心代码片段记录

使用 maxsize=1g 的飞行记录器仍会返回缺少时间窗口的跟踪

飞行记录器“本机”文件