Java Tomcat和Matlab编译器运行时内存不足错误

Java Tomcat和Matlab编译器运行时内存不足错误,java,matlab,tomcat,memory,jvm,Java,Matlab,Tomcat,Memory,Jvm,我的Ubuntu 14.04服务器上安装了Tomcat7和MCR8.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 -Xm

我的Ubuntu 14.04服务器上安装了Tomcat7和MCR8.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"

最后,我发现了问题所在。这不是配置问题。我没有从matlab函数中释放内存。我真丢脸…

你是不是用的xmx太大了?它不是32位jre吗?这可能是因为它不能分配超过2GB的数据,难道没有像hs_err_pid27165.log这样的日志吗?可能是这条关于卡桑德拉的@MarianP。。。我使用64位JRE。。。我使用setenv.sh文件中的JAVA_OPTS行进行更新。您使用的是哪个JVM版本?错误日志中还有其他内容吗?