皕杰技术社区

 找回密码
 立即加入

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3407|回复: 14

[分享] tomcat内存溢出的原因

[复制链接]
发表于 2018-9-25 18:08:11 | 显示全部楼层 |阅读模式
本帖最后由 东华帅哥 于 2018-9-25 18:10 编辑

1、错误信息
常见的一般会有下面两种情况:
OutOfMemoryError: Java heap space
OutOfMemoryError: PermGen space
2、解决方案
在应用本身没有内存泄露的情况下可以用设置tomcat 内存参数来解决。(-Xms -Xmx -XX:PermSize -XX:MaxPermSize)
其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
 楼主| 发表于 2018-9-25 18:09:43 | 显示全部楼层
3、tomcat增大内存方法
3.1、linux环境
编辑tomcat的catalina.sh文件,在第一行的后面增加一句:
  1. JAVA_OPTS='-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M'
复制代码
注意:单引号不能少,-server表示以server模式运行(运行效率比默认的client高很多,自己云去测试),-Xms256m是最小内存,-Xmx512m是最大内存,其中的256与512可根据你自己的内存做相应调整,PermSize/MaxPermSize最小/最大堆大小.
3.2、windows环境
编辑tomcat的catalina.bat文件,在第一行的后面增加一句:
  1. set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M
复制代码


回复 支持 反对

使用道具 举报

发表于 2019-3-20 12:05:38 | 显示全部楼层
这是干啥啊这是干啥啊这是干啥啊这是干啥啊这是干啥啊这是干啥啊这是干啥啊这是干啥啊
回复 支持 反对

使用道具 举报

发表于 2019-5-13 15:49:25 | 显示全部楼层
参数解释:

-server:一定要作为第一个参数,在多个CPU时性能佳。

-Xms:java Heap初始大小。 默认是物理内存的1/64。

-Xmx:java heap最大值。建议均设为物理内存的一半。不可超过物理内存。

-XX:PermSize=256M:初始化类加载内存池大小。

-XX:MaxPermSize=256M:最大类加载内存池大小。

-Xmn:young generation(年轻代)的heap大小。一般设置为Xmx的3、4分之一。

回复 支持 反对

使用道具 举报

发表于 2019-6-10 16:51:58 | 显示全部楼层
多谢大佬分享
回复 支持 反对

使用道具 举报

发表于 2019-11-18 14:17:20 | 显示全部楼层
多谢分享,学习了
回复 支持 反对

使用道具 举报

发表于 2019-12-16 15:57:46 | 显示全部楼层
hahahadsfadasdf
回复 支持 反对

使用道具 举报

发表于 2019-12-16 15:59:14 | 显示全部楼层
asdfasfasdfsadfds
回复 支持 反对

使用道具 举报

发表于 2020-1-2 10:07:39 | 显示全部楼层
我经常遇到内存溢出的问题  楼主的liunx和win环境下是正确的
回复 支持 反对

使用道具 举报

发表于 2020-1-7 14:20:00 | 显示全部楼层
学习了,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|小黑屋|手机版|皕杰软件 ( 京ICP备14050931号 )

GMT+8, 2024-4-27 07:41 , Processed in 1.117039 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表