【IGNITE】JMX port for Ignite in docker

背景介绍

我们使用docker容器部署了ignite集群,在使用过程中发现占用内存很高,50万条数据占用了8个G内存,于是就想看一下容器内部应用的堆栈信息,分析一下。一开始我在容器创建脚本中加入了以下配置,结果端口无法访问。经过再三查阅资料,需要以下配置才可以:

修改 ignite.sh 脚本

if [ -n "$JMX_PORT" ]; then
        JMX_MON="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=${JMX_PORT} -Dcom.sun.management.jmxremote.rmi.port=${JMX_PORT} \
                 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
fi

将修改后的 ignite.sh 替换容器中的脚本

完整的容器创建脚本如下:

docker run -it -d  --name ignite-test --net=host \
-v /data/ignite/config:/opt/ignite/apache-ignite/config \
-v /data/ignite/config/ignite.sh:/opt/ignite/apache-ignite/bin/ignite.sh \
-v /data/ignite:/data/ignite \
-p 10800:10800 \
-p 9090:9090 \
-e "CONFIG_URI=/opt/ignite/apache-ignite/config/default-config.xml" \
-e "JMX_PORT=9090" \
-e "IGNITE_JMX_PORT=9090" \
-e "JAVA_OPTS= \
-server -Xms512m -Xmx512m -XX:+AlwaysPreTouch -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:MaxDirectMemorySize=1024m -XX:+DisableExplicitGC \
-DIGNITE_PERFORMANCE_SUGGESTIONS_DISABLED=true \
-Djava.net.preferIPv4Stack=true" \
apacheignite/ignite:2.7.5

因为使用了 --net=host 网络模式,其实 -p 10800:10800 和 -p 9090:9090 可以省略

参考资料:http://apache-ignite-users.70518.x6.nabble.com/JMX-port-for-Ignite-in-docker-td27491.html#a

你可能感兴趣的:(ignite,【大数据】Ignite)