一、问题环境
- 操作系统:银河麒麟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端口没开导致。
四、回顾问题产生原因
- Docker 2375没开,SuperMap iManager启动会链接,如果连不上的话,可能会占socket总链接,而且会不停的请求,一直链接,可能会造成资源泄漏。
- 由于当前环境是是服务器,内存比较大,内存比较大的情况下,很久才会出现GC,也就是内置预设的1.5G消耗完都不会导致系统GC,当1.5G消耗完,又没有触发GC,从而导致OOM。
(转发请注明出处:https://blog.csdn.net/zhang90522 如发现有错,请留言,谢谢)