可乐分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 479|回复: 21

[开发教程] 怎么正确的修改 tomcat 内存

[复制链接]

416

主题

2

回帖

1416

积分

管理员

Rank: 12Rank: 12Rank: 12

积分
1416
发表于 2024-10-11 15:39:54 | 显示全部楼层 |阅读模式
Jetty VM参数中设置:
  1. -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
复制代码


tomcat运行环境中设置:
window
环境 startup.bat第一行
  1. SET CATALINA_OPTS= -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
复制代码


linux
环境在catalina.sh

"if [ $have_tty -eq 1 ]; then"
之后增加
  1.   JAVA_OPTS="-server -Xms256m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m"
复制代码

1、对于安装版的TOMCAT:
进入TOMCAT的安装目录下的bin目录,双击tomcat8w.exe。点击Java选项卡,可设置初始化内存,最大内存,线程的内存大小。
初始化内存:如果机器的内存足够大,可以直接将初始化内存设置为512M,如果机器内存较小可适当调小,对于运行了EJB的应用,最好不要低于128M。
最大内存:最大内存可以基于服务器的配置进行设置到最大
对于容器下运行了多个WEB应用时,尽量将相同的JAR包转移到TOMCAT的lib下,此外还需要在JAVA OPTIONS加上如下配置:
  1. -XX:PermSize=16m
  2. -XX:MaxPermSize=128m
复制代码

此配置表示JAVA永久保存区域(即不会被虚拟机回收)初始大小为16M,最大为128M。
2、对于解压版的TOMCAT:
如果是WINDOWS操作系统,修改catalina.bat文件;否则修改catalina.sh文件。只需要在文件的头部加上
  1. "set JAVA_OPTS=-Xms512m -Xmx512m -Xss1024k
复制代码

”,数值分别对应了初始化的最小内存,最大内存,线程内存大小。如果JDK的版本是5.0之后的,线程内存可以不用设置。
3、linux系统下修改方法
在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh
添加:
  1. JAVA_OPTS=’-Xms512m -Xmx1024m’
复制代码

要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。
-Xms:初始值
-Xmx:最大值
-Xmn:最小值

对于容器下运行了多个WEB应用时,尽量将相同的JAR包转移到TOMCAT的lib下,此外还需要在JAVA OPTS后加上如下配置:
  1. -XX:PermSize=16m -XX:MaxPermSize=128m
复制代码

即为:
  1. JAVA_OPTS=’-Xms256m –Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m’
复制代码

此配置表示JAVA永久保存区域(即不会被虚拟机回收)初始大小为16M,最大为128M。
修改内存后,可启动TOMCAT,输入http://127.0.0.1:8080,进入Status,会提示输入登录的用户名和密码,用户可以在conf/tomcat-user.xml中配置(配置完后需要重启TOMCAT),
  1. <?xmlversion='1.0'encoding='utf-8'?>
  2. <tomcat-users>
  3. <rolerolename="manager"/>
  4. <userusername="tomcat"password="s3cret"roles="manager"/>
  5. </tomcat-users>

复制代码


登录后即可看到TOMCAT当前的空闲内存和最大内存。
tomcat报Exception in thread "http-8080-36" java.lang.OutOfMemoryError: PermGen space异常的解决:
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对
PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小
超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
  1. JAVA_OPTS="-server -XX:PermSize=128m -XX:MaxPermSize=256m
复制代码


建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。


可乐分享 - 免责声明1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站信息来自网络,版权争议与本站无关
3、本站发布的相关帖子文章仅限用于学习和研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负
4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
5、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
6、可乐分享管理员和版主有权不事先通知发贴者而删除本文

回复

使用道具 举报

0

主题

708

回帖

1071

积分

高级会员

Rank: 6Rank: 6

积分
1071
发表于 2024-10-17 15:50:44 | 显示全部楼层
信春哥,得永生!keleshare.cn
回复

使用道具 举报

0

主题

626

回帖

948

积分

高级会员

Rank: 6Rank: 6

积分
948
发表于 2024-11-4 21:09:06 | 显示全部楼层
吊炸天的xx,调皮会死人的
回复

使用道具 举报

0

主题

698

回帖

1056

积分

高级会员

Rank: 6Rank: 6

积分
1056
发表于 2024-11-14 10:03:56 | 显示全部楼层
楼主听话,快到碗里来!
回复

使用道具 举报

0

主题

694

回帖

1050

积分

高级会员

Rank: 6Rank: 6

积分
1050
发表于 2024-11-17 05:34:16 | 显示全部楼层
信春哥,得永生!keleshare.cn
回复

使用道具 举报

0

主题

708

回帖

1071

积分

高级会员

Rank: 6Rank: 6

积分
1071
发表于 2024-12-19 00:59:55 | 显示全部楼层
信春哥,得永生!keleshare.cn
回复

使用道具 举报

0

主题

746

回帖

1128

积分

高级会员

Rank: 6Rank: 6

积分
1128
发表于 2024-12-19 07:45:37 | 显示全部楼层
我只是挽尊的,貌似还不够十五字
回复

使用道具 举报

0

主题

516

回帖

775

积分

高级会员

Rank: 6Rank: 6

积分
775
发表于 2024-12-20 09:41:01 | 显示全部楼层
楼主你知道的太多了。
回复

使用道具 举报

0

主题

650

回帖

984

积分

高级会员

Rank: 6Rank: 6

积分
984
发表于 2024-12-23 04:06:08 | 显示全部楼层
楼主节操掉了,还不快捡起来
回复

使用道具 举报

0

主题

612

回帖

927

积分

高级会员

Rank: 6Rank: 6

积分
927
发表于 2024-12-26 02:22:53 | 显示全部楼层
如果你智商能再高点,也许我会上当
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【可乐分享www.keleshare.cn】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|可乐分享,站长交流 ( 苏ICP备2024109924号 )|网站地图

GMT+8, 2025-6-21 11:09 , Processed in 0.093397 second(s), 21 queries .

Powered by 可乐分享

© 2023-2024 keleshare.cn.

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