tomcat开启jmx 容器 如何设置Docker容器中Java应用的内存限制?
如何设置Docker容器中Java应用的内存限制?
如果没有在用官方的Java镜像,也可以基于Java镜像构建的Docker镜像,都也可以传达消息JAVA_OPTS环境变量来随意地设置中JVM的内存参数。.例如,这对官方Tomcat镜像,我们也可以先执行下面命令来启动后一个的最内存为512M的tomcat实例
dockerpull--rm-eJAVA_OPTS-Xmx512mtomcat:8
在日志中,我们可以很清楚地发现到设置里巳经不生效“Commandlineargument:-Xmx512m”
02-Apr-201612:46:26.970INFO[main]Serverversion:ApacheTomcat/8.0.32
02-Apr-201612:46:26.974INFO[main]Serverbuilt:Feb2201619:34:53UTC
02-Apr-201612:46:26.975INFO[main]Servernumber:8.0.32.0
02-Apr-201612:46:26.975INFO[main]OSName:Linux
02-Apr-201612:46:26.975INFO[main]OSVersion:4.1.19-boot2docker
02-Apr-2016 12:46:26.975 INFO [main] Architecture: amd64-Apr-201612:46:26.975INFO[main]JavaHome:/usr/lib/jvm/java-7-openjdk-amd64/jre
02-Apr-201612:46:26.976INFO[main]JVM Version: 1.7.0_95-b00-Apr-201612:46:26.976INFO[main]JVMVendor:OracleCorporation
02-Apr-201612:46:26.977INFO[main]CATALINA_BASE:/usr/region/tomcat
02-Apr-201612:46:26.977INFO[main]CATALINA_HOME:/usr/local/tomcat
02-Apr-201612:46:26.978INFO[main]Commandlineargument:
02-Apr-201612:46:26.978INFO[main]Commandlineargument:
02-Apr-201612:46:26.978INFO[main]Commandlineargument:-Xmx512m
...
但他在Docker集群上防御部署不运行Java容器应用的时候,仅对JVM的heap参数设置是太差的,我们还是需要对Docker容器的内存资源参与限制:
1.限制下载容器使用的内存的大量,能够防止对系统或其他应用造成伤害
2.也能将Docker容器调度到占据加上空余的内存的节点,进而保证应用方法的所需运行资源
关於容器的资源分配约束,Docker可以提供了相对应的启动参数
对内存而言,最基本的那就是是从-m参数来管理和约束容器不使用内存的大小
-m,--memory
什么是web容器?
web容器是一种服务程序,在服务器一个端口就有一个需要提供相对应服务的程序,而这个程序就是一次性处理从客户端口中发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS大都这样的容器。一个服务器可以多个容器。
容器 main 内存 Docker Commandlineargument
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。