Tomcat OutOfMemoryError异常问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Tomcat OutOfMemoryError异常问题

落地花开啦 2016-03-25 16:57:35 2270

请教大家一个问题 我用都是ubuntu 12.10 x64位的,安装的eclipse ,jdk 都是64位的 tomcat 7.0.21
(java version "1.7.0_09" Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)),如果我用32位jdk运行项目不会提示错误,但是只要我用64位就提示错误
`Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0"
Exception in thread "http-bio-8877-exec-2"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-bio-8877-exec-2"
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" ,`
能否帮我看看,谢谢,我都电脑是i7cpu 8g内存

Ubuntu Java 应用服务中间件 Android开发
分享到
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:14:43

    改$TOMCAT_HOME/bin下面的catalina.sh,JVM启动参数设定JVM启动参数
    -XX:+UseCompressedOoops 开启普通对象指针压缩功能,另外xms和xmx可以设定比你原来32位的时候更大,反正64位不再有那个1.5G的限制了。这样多少会有点缓解。

    对自身程序优化也可以同时做一下,多试试看看造成内存溢出的原因是不是总是那一段代码,优化一下,比如不要总是从数据库一次性拖大量东西到内存。

    另外之前看到有文章说不止是内存方面,性能上64位JVM比32位也有大约15%的性能差距,没有实际测试过这方面,不敢肯定,不过要改变运行环境,多少还是要各种测试的。

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程