记录一个项目开发部署中遇到的一个问题,处理经验总结。
问题:
我们的项目使用的是Angular6 + Spring boot + redis + mycat结构,项目部署在容器里面,项目正式部署以后,发现内存一直在升高,以至于使服务器内存几乎所剩无几,服务器上运行的其他内存就*终止了。
解决策略:
限制单个容器内存使用上限,当达到这个上限时,会主动进行垃圾回收,清理垃圾,释放内存。
技术实现:
在容器中运行镜像时候 添加 -m xxM 限制,如下:
docker run -tid --name idata_v0.0.0.9 -p 19007:8080 -m 400m --restart=always idata_v0.0.0.9
测试结果:
容器实际运行内存不会超过400M