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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章