易妖游戏网
您的当前位置:首页麒麟kylin v10使用docker启动es,mysql等服务,容器内存高占用异常情况

麒麟kylin v10使用docker启动es,mysql等服务,容器内存高占用异常情况

来源:易妖游戏网

项目场景:

这里的系统环境为kylin linux advanced server v10 (lance)


问题描述

在docker环境中部署es和mysql,占用突然飙高或明显出现异常

这里可以看见es的服务明显出现异常,内存占用飙高,但是看mysql比较正常(其实不然,只是被es给占用了,因为我先启动的es)


原因分析:

这个问题出现的原因是因为在安装docker时,docker.service这个文件中的LimitNOFILE项使用的是默认配置

然而这个默认项针对可能更多的是centos、red hat等系统,麒麟系统在这里读取的内容可能会是2^30(1073741816)或者是2^6(),但是我在centos7的系统中读取的数据是2^20(1048576)


解决方案:

修改docker.service文件

1、首先确定这里docker使用的docker.service是哪一个或在那里(不同系统中的路径不同)

systemctl show -p FragmentPath docker

这里返回的路径为现在docker正在使用的docker.service文件

2、修改docker.service文件

vim /etc/systemd/system/docker.service

 这里只对LimitNOFILE项进行修改,将其改为2^20(1048576)

3、重新加载配置内容

systemctl daemon-reload

4、重启服务

systemctl restart docker

这里如果服务器部署的内容较多的话,可以稍微等待一下

5、查看启动情况和占用情况

docker ps           ##  查看服务是否正常启动

docker stats       ##  查看内存占用情况

确保服务正常启动

高占用情况得到解决

因篇幅问题不能全部显示,请点此查看更多更全内容