一、问题环境

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

二、现象

磁盘和内存都有空闲,首次启动SuperMap iManager就崩溃
磁盘
内存
查看iManager日志,发现free space不够导致OOM
iManager日志

三、排错思路

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

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

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。

(转发请注明出处:https://blog.csdn.net/zhang90522 如发现有错,请留言,谢谢)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐