背景介绍
我们使用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/igni