开发者社区> 问答> 正文

tomcat Java heap space内存溢出?报错

tomcat 报错 一看是内存不够Free memory: 56.01 MB Total memory: 124.81 MB Max memory: 124.81 MB。

请问要如何设置,案网上方法试了很多还是不行。求帮助。。。。。

展开
收起
爱吃鱼的程序员 2020-06-14 15:10:07 834 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    在tomcat的bin文件夹下建立 #CC0000;font-family:arial;line-height:20px;background-color:#FFFFFF;">setenv.bat/ #CC0000;font-family:arial;line-height:20px;background-color:#FFFFFF;">setenv.sh

    填入以下内容:

    JAVA_OPTS='-server-Xms4000M-Xmx4000M-Xmn600M-XX:PermSize=500M-XX:MaxPermSize=500M-XX:SurvivorRatio=65536-XX:MaxTenuringThreshold=0-Xnoclassgc-XX:+DisableExplicitGC-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:+UseCMSCompactAtFullCollection-XX:CMSFullGCsBeforeCompaction=0-XX:+CMSClassUnloadingEnabled-XX:-CMSParallelRemarkEnabled-XX:CMSInitiatingOccupancyFraction=90-XX:SoftRefLRUPolicyMSPerMB=0'

    其中Xms、Xmx、Xmn、PermSiz、MaxPermSize视实际内存来配置

    这个号称百万PV都没问题的


    回复 @Feng_Yu:正在开发的项目需要完善的是自身,而不是JVM。JVM升级真的没必要,只要Java7能够完成功能,便无需迁移。就好像CentOS6.5和CengOS7一样,我的软件能够完美的在CentOS6.5下运行,我为什么一定要迁移至CentOS7呢,或许使用最新的东西往往还会带来不可预知的问题,所以够用就好了回复 @battyman:java7已经不再维护,迁移升级是有必要的。使用一个不再维护的软件不是好方案,尤其是还在开发的项目回复 @Feng_Yu:为什么要用Java8呢PermSize这样的参数在java8下已经被移除了120多M内存,这。。。。也太小了吧有16G内存,就是不知道这么分配,求帮助

    修改TOMCAT_HOME/bin/catalina.sh 
    位置cygwin=false前。
    JAVA_OPTS="-server-Xms1024m-Xmx 1024m-XX:PermSize=128M-XX:MaxPermSize=256m" 

     

    这个方法试过了不起作用请问 setenv.bat中和 setenv.sh中都要加入吗?bat文件是window下用的,sh文件则是Linux下面
    2020-06-14 15:10:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载