【发布时间】:2018-08-27 13:05:07
【问题描述】:
我在 1GB RAM 的 RHEL 7 机器上运行 tomcat。我已经设置了 tomcat 和 java 都有 Xmx=1G 和下面的语句支持,
[root@ip-172-31-28-199 bin]# java -XX:+PrintFlagsFinal -version | grep HeapSize 拾取 _JAVA_OPTIONS: -Xmx1g uintx ErgoHeapSizeLimit = 0 {产品} uintx HeapSizePerGCThread = 87241520 {产品} uintx InitialHeapSize := 16777216 {产品} uintx LargePageHeapSizeThreshold = 134217728 {产品} uintx MaxHeapSize := 1073741824 {product} openjdk 版本“1.8.0_161”
和
tomcat 2799 1 1 02:21 ? 00:00:07 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Djdk.tls。 ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Xmx1024M -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat- juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start
但是当我得到异常时,我会收到以下消息,
Java 运行时环境没有足够的内存继续运行。
本机内存分配 (mmap) 未能映射 244043776 字节以提交保留内存。
我知道 java 永远不能要求 1GB 内存,因为那是机器的总内存。但是为什么我提到这个尺寸时会出错?
【问题讨论】:
-
这是一个逻辑问题。如果你的服务器只有 1GB RAM,为什么你认为应该为 Tomcat 保留 1GB RAM?操作系统和其他软件也需要使用系统内存!你最好增加你的服务器内存。
标签: java tomcat memory redhat heap-memory