dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:464回复:0

如何设置 Docker Tomcat 容器 JVM 内存 ?

楼主#
更多 发布于:2018-04-17 19:04
环境描述
tomcat 容器 On Docker 1.13.1 On CentOS 7.3 amd64 On XenServer 7.2
VM配置 为 4vcp/8GB内存/100GB磁盘

问题描述
某 JAVA项目测试环境,基于 Rancher 平台 做应用编排与 CI持续集成,发现 Tomcat 容器内存消耗较大(RES 1GB+),极端情况会导致内存溢出(8个Tomcat容器),VM宕机;
[9859307.999251] Out of memory: Kill process 3005 (plugin-manager) score 191 or sacrifice child
[9859307.999288] Killed process 3005 (plugin-manager) total-vm:2902852kB, anon-rss:2097196kB, file-rss:0kB, shmem-rss:0kB

解决方法
由于为是测试环境,主要用于功能测试,并没有大量请求与并发,所以设置JVM 内存限制,例如: JAVA_OPTS='-Xmx512m'

rancher 上操作非常简单
1. 如果已存在的项目,直接编辑项目并设置环境变量即可;

图片:rancher-jvm-env.png



2. 如果使用 docker-compose 创建新的项目,直接添加环境变量即可;
cat docker-compose.yml
....省略
  demo:
    image: tomcat
    environment:
      JAVA_OPTS= '-Xmx512m'
....省略

#
游客

返回顶部