信创环境经典版SuerMap iManager启动崩溃


一、问题环境

  • 操作系统:银河麒麟kylin V10
  • CPU:鲲鹏920
  • SuperMap iManager 10.2.1
  • 硬件:16H64G机器

二、现象

磁盘和内存都有空闲,首次启动SuperMap iManager就崩溃


查看iManager日志,发现free space不够导致OOM

三、排错思路

3.1 先看崩溃日志究竟有什么内容

进入SuperMap iManager容器内部,查看JVM崩溃日志,发现free space不够导致OOM

3.2 临时修改JVM值,将默认 -Xmx1536m修改为3536m

修改位置为/etc/icloud/SuperMap iManager/bin/catalina.sh

3.3 再次启动SuperMap iManager,发现日志有新错误

3.4 问题定位原因,是由于Docker 2375没有开放

开放方式如下

cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
sed -i "s|ExecStart=/usr/bin/dockerd|ExecStart=/usr/bin/dockerd -H 0.0.0.0:2375 -H unix:///var/run/docker.sock --insecure-registry 0.0.0.0/0|g" /etc/systemd/system/docker.service
echo -e "\nnet.ipv4.ip_forward=1" >> /etc/sysctl.conf
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl daemon-reload
service docker restart
systemctl enable docker

3.5 再次重启SuperMap iManager正常,甚至将JVM值恢复成-Xmx1536m,也可以正常启动,所以根本原因是2375端口没开导致。

四、回顾问题产生原因

  1. Docker 2375没开,SuperMap iManager启动会链接,如果连不上的话,可能会占socket总链接,而且会不停的请求,一直链接,可能会造成资源泄漏。
  2. 由于当前环境是是服务器,内存比较大,内存比较大的情况下,很久才会出现GC,也就是内置预设的1.5G消耗完都不会导致系统GC,当1.5G消耗完,又没有触发GC,从而导致OOM。

(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)