2016 - 2025

感恩一路有你

tomcat开启jmx 容器 如何设置Docker容器中Java应用的内存限制?

浏览量:4809 时间:2023-05-16 15:06:09 作者:采采

如何设置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

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。