oracle启动数据库提示outofmemory 如何设置Docker容器中Java应用的内存限制?

[更新]
·
·
分类:互联网
2440 阅读

oracle启动数据库提示outofmemory

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

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

如果使用官方的Java镜像,或者基于Java镜像构建的Docker镜像,都可以通过传递 JAVA_OPTS 环境变量来轻松地设置JVM的内存参数。比如,对于官方Tomcat 镜像,我们可以执行下面命令来启动一个最大内存为512M的tomcat实例
docker run --rm -e JAVA_OPTS-Xmx512m tomcat:8
在日志中,我们可以清楚地发现设置已经生效 “Command line argument: -Xmx512m”
02-Apr-2016 12:46:26.970 INFO [main] Server version: Apache Tomcat/8.0.32
02-Apr-2016 12:46:26.974 INFO [main] Server built: Feb 2 2016 19:34:53 UTC
02-Apr-2016 12:46:26.975 INFO [main] Server number: 8.0.32.0
02-Apr-2016 12:46:26.975 INFO [main] OS Name: Linux
02-Apr-2016 12:46:26.975 INFO [main] OS Version: 4.1.19-boot2docker
02-Apr-2016 12:46:26.975 INFO [main] Architecture: amd64
02-Apr-2016 12:46:26.975 INFO [main] Java Home: /usr/lib/jvm/java-7-openjdk-amd64/jre
02-Apr-2016 12:46:26.976 INFO [main] JVM Version: 1.7.0_95-b00
02-Apr-2016 12:46:26.976 INFO [main] JVM Vendor: Oracle Corporation
02-Apr-2016 12:46:26.977 INFO [main] CATALINA_BASE: /usr/local/tomcat
02-Apr-2016 12:46:26.977 INFO [main] CATALINA_HOME: /usr/local/tomcat
02-Apr-2016 12:46:26.978 INFO [main] Command line argument:
02-Apr-2016 12:46:26.978 INFO [main] Command line argument:
02-Apr-2016 12:46:26.978 INFO [main] Command line argument: -Xmx512m
...
然而在Docker集群上部署运行Java容器应用的时候,仅仅对JVM的heap参数设置是不够的,我们还需要对Docker容器的内存资源进行限制:
1. 限制容器使用的内存的最大量,防止对系统或其他应用造成伤害
2. 能够将Docker容器调度到拥有足够空余的内存的节点,从而保证应用的所需运行资源
关于容器的资源分配约束,Docker提供了相应的启动参数
对内存而言,最基本的就是通过 -m参数来约束容器使用内存的大小
-m, --memory

在计算机软件分类中,Oracle属于?

Oracle,全称Oracle Database,是美国甲骨文公司的一款关系型数据库管理软件。该数据库管理软件具有可移植性好、使用方便、性能强大等特点,是世界上广泛使用的关系型数据库管理软件。不仅如此,Oracle数据库管理软件还是一款高效率、适应高吞吐率、可靠性好的数据库解决方案。
Oracle数据库最新版本为Oracle Database 21c。
全新的Oracle database 21C,引入了十大新特性,他们分别是原生的区块链技术支持、持久化内存存储支持、SQL的宏支持、原生的JSON数据类型支持、SQL新特性和函数扩展支持、自动化的In-Memory惯例(In-Memory技术引入后,为Oracle数据库带来了基于内存的列式存储能力)、广泛的机器学习算法和automl支持、多租户细粒度资源模型、零影响的计划停机维护、In-memory的Spatial和text支持。
这些独一无二的技术进步再加上在可用性、安全性和大数据等多项支持方面的主要增强,使得Oracle数据库21C成为更强大的数据库管理软件。