64位Amazon Linux 2016.09 v2.5.2,Tomcat 8 Java 8
环境,使用AWS Elasticbeanstalk
免费版(实例类型:t1.micro
)。我有一些RESTful服务,当调用特定的服务时,会执行一些操作,我始终收到502错误
,并在日志中看到以下内容:
问题: 这意味着我需要升级到付费版本,即大于实例类型OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000e2220000, 130215936, 0) failed; error='Cannot allocate memory' (errno=12)
There is insufficient memory for the Java Runtime Environment to continue. Native memory allocation (mmap) failed to map 130215936 bytes for committing reserved memory. An error report file with more information is saved as: /tmp/hs_err_pid31500.log OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=64m; support was removed in 8.0
t1.micro
吗?或者,我是否可以配置我的环境来处理这个问题?
我之所以问这个问题,是因为上面的日志表明Java应用程序仅需要130mb(130215936字节)的内存,而下面您可以看到JVM堆大小要大得多。因此,我不会期望它在130mb处崩溃。
更多信息:
我有以下配置设置:
谢谢
更新
我将 Max JVM
更改为 256mb
,但仍然遇到错误:
OpenJDK 64位服务器 VM 警告:忽略选项 MaxPermSize=256m;在 8.0 中删除了支持 OpenJDK 64位服务器 VM 警告:INFO: os::commit_memory(0x00000000c0000000, 89456640, 0) 失败;error='Cannot allocate memory' (errno=12)
Java 运行时环境的内存不足以继续。本机内存分配(mmap)无法映射 89456640 字节以提交保留内存。带有更多信息的错误报告文件已保存为: /tmp/hs_err_pid14014.log OpenJDK 64位服务器 VM 警告:忽略选项 MaxPermSize=256m;在 8.0 中删除了支持
但这里仅使用了 89mb
就出现了问题。