当前位置: 代码网 > 科技>电脑产品>内存 > 修改TOMCAT的JVM虚拟机内存大小的三种方法

修改TOMCAT的JVM虚拟机内存大小的三种方法

2024年09月24日 内存 我要评论
修改tomcat的jvm虚拟机内存大小几种方式tomcat默认可以使用的内存为128mb,在较大型的应用项目中,这点内存是不够的,需要调大。经常会出现java.lang.outofmemoryerro

修改tomcat的jvm虚拟机内存大小几种方式

tomcat默认可以使用的内存为128mb,在较大型的应用项目中,这点内存是不够的,需要调大。

经常会出现java.lang.outofmemoryerror: java heap space 即jvm heap溢出的错误。

对此有以下几种方法可以选用:

第一种方法:修改catalina.bat/catalina.sh文件

1.linux 下调整tomcat的内存设置

修改bin目录下catalina.sh文件

在cygwin=false之上

添加以下语句

java_opts="-xms1024m -xmx4096m -xss1024k -xx:permsize=512m -xx:maxpermsize=2048m"

其中-xms为jvm初始化堆的大小,-xmx为jvm堆的最大值

2. window 下调整tomcat的内存设置

修改bin目录下catalina.bat文件@echo off下追加

set java_opts= -xms1024m -xmx1024m -xx:permsize=256m -xx:maxnewsize=256m -xx:maxpermsize=256m

3.eclipse下修改外置tomcat的内存设置

open launch configuration=>arguments=>vm arguments

追加-xms1024m -xmx4096m -xx:permsize=512m -xx:maxpermsize=2048m

在这里插入图片描述

第二种方法:环境变量中设置

变量名:java_opts
变量值:-xms512m-xmx512m
(服务器内存大小为32g)
变量值:-xms512m -xmx2048m -xx:permsize=512m -xx:maxpermsize=2048m  -xx:reservedcodecachesize=512m

img

前两种方法针对的是bin目录下有catalina.bat的情况(比如直接解压的tomcat等)并且通过startup.bat/startup.sh启动才生效,但是有些安装版的tomcat下没有catalina.bat,这个时候可以采用如下方法,当然这个方法也是最通用的方法:

第三种方法:通过d:apache-tomcat-8.0.52-windows-x64apache-tomcat-8.0.52in omcat8w.exe,配置内存大小

1》打开d:apache-tomcat-8.0.52-windows-x64apache-tomcat-8.0.52in	omcat8w.exe,
2》点击java选项卡,然后将会发现其中有这么两项:initialmemorypool和maximummemorypool.initialmemorypool这个就是初始化设置的内存的大小。
3》maximummemorypool这个是最大内存的大小设置完了就按确定然后再重启tomcat你就会发现tomcat中jvm可用的内存改变了。

img

另外需要考虑的是java提供的垃圾回收机制。虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。如果堆的大小很大,那么完全垃圾收集就会很慢,但是频度会降低。如果你把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。在基准测试的时候,为保证最好的性能,要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。

如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过3-5秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的80%作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。

以上就是修改tomcat的jvm虚拟机内存大小的三种方法的详细内容,更多关于修改tomcat jvm内存大小的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com