【发布时间】:2015-01-16 11:14:45
【问题描述】:
我的 Ubuntu 14.04 服务器上安装了 Tomcat 7 和 MCR 8.3。 当服务器接收到很少的连接时我没有问题,但是当它们太多时,我有一个内存不足错误。 JVM 参数是:
-Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dfile.encoding=UTF-8 -Xms128m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=1024m -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -Dcatalina.base=/var/lib/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.io.tmpdir=/tmp/tomcat7-tomcat7-tmp
日志中的错误是:
Out of Memory Error (os_linux.cpp:2756), pid=27165, tid=140664871548672
堆是空闲的
Heap
PSYoungGen total 1289728K, used 672681K [0x00000007aaa80000, 0x00000007fde00000, 0x0000000800000000)
eden space 1288704K, 52% used [0x00000007aaa80000,0x00000007d3b6a578,0x00000007f9500000)
from space 1024K, 0% used [0x00000007f9500000,0x00000007f9500000,0x00000007f9600000)
to space 37376K, 0% used [0x00000007fb980000,0x00000007fb980000,0x00000007fde00000)
ParOldGen total 128000K, used 64279K [0x0000000700000000, 0x0000000707d00000, 0x00000007aaa80000)
object space 128000K, 50% used [0x0000000700000000,0x0000000703ec5d98,0x0000000707d00000)
PSPermGen total 262144K, used 45159K [0x00000006c0000000, 0x00000006d0000000, 0x0000000700000000)
object space 262144K, 17% used [0x00000006c0000000,0x00000006c2c19fc8,0x00000006d0000000)
而且系统内存也是空闲的:
Memory: 4k page, physical 32904520k(26875548k free), swap 999420k(999420k free)
可能是什么?
这是我的 setenv.sh 文件中的行:
export JAVA_OPTS="-Dfile.encoding=UTF-8 -server -d64 -Xms128m -Xmx8192m -XX:PermSize=256m -XX:MaxPermSize=2048m"
【问题讨论】:
-
你不是用太大的xmx吗?不是32位jre吗?可能是它不能分配超过 2gb
-
不是有hs_err_pid27165.log这样的日志吗?可能是这个mail-archives.apache.org/mod_mbox/incubator-cassandra-user/…
-
@MarianP 该线程谈到 Cassandra...我使用 64 位 JRE...我使用 setenv.sh 文件中的 JAVA_OPTS 行进行更新。
-
您使用的是哪个 JVM 版本?错误日志中还有其他内容吗?
标签: java matlab tomcat memory jvm