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

 更新时间:2024年09月24日 11:12:23   作者:m0_54883970  
Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大,经常会出现Java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出的错误,所以本文介绍了修改TOMCAT的JVM虚拟机内存大小的三种方法,需要的朋友可以参考下

修改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内存大小的资料请关注脚本之家其它相关文章!

相关文章

  • IDEA2021 tomcat10 servlet 较新版本踩坑问题

    IDEA2021 tomcat10 servlet 较新版本踩坑问题

    这篇文章主要介绍了IDEA2021 tomcat10 servlet 较新版本踩坑问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 如何修改tomcat项目的图标(两种)

    如何修改tomcat项目的图标(两种)

    这篇文章主要介绍了修改tomcat项目图标的方法,一种形式是修改页面,另一种形式是修改webapps/root 图标,具体修改方法大家参考下本文
    2018-03-03
  • tomcat常见的错误与解决方案小结

    tomcat常见的错误与解决方案小结

    web容器其实都是tomcat,但tomcat的内核很丰富,如果要完全理解需要很长的时间和较多的编程经验。不管是初学者还是有经验的web程序员,使用Tomcat容器的时候会发生包括404,运行启动错误,以及乱码等等的问题,本文将开发过程中遇到的常见错误和简单解决方法分享给大家。
    2016-11-11
  • Tomcat注册成服务的几个注意点小结

    Tomcat注册成服务的几个注意点小结

    这篇文章主要介绍了Tomcat注册成服务的几个注意点,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 深入浅析Centos 7系统的Tomcat服务器

    深入浅析Centos 7系统的Tomcat服务器

    tomcat最初是由Sun的软件架构师詹姆斯 邓肯 戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。这篇文章主要介绍了Centos 7系统的Tomcat服务器的相关知识,需要的朋友可以参考下
    2019-12-12
  • Tomcat starup.bat脚本开机自启动的实现

    Tomcat starup.bat脚本开机自启动的实现

    本文主要介绍了Tomcat starup.bat脚本开机自启动的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Tomcat服务器启动失败的一些原因及解决办法总结

    Tomcat服务器启动失败的一些原因及解决办法总结

    Tomcat是常用的应用服务器之一,主要用于开发和测试,也有少量用户用在生产系统中,这篇文章主要给大家介绍了关于Tomcat服务器启动失败的一些原因及解决办法的相关资料,需要的朋友可以参考下
    2023-12-12
  • 记一次tomcat进程cpu占用过高的问题排查记录

    记一次tomcat进程cpu占用过高的问题排查记录

    这篇文章主要介绍了记一次tomcat进程cpu占用过高的问题排查记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Eclipse添加新server时无法选择Tomcat7的解决方法

    Eclipse添加新server时无法选择Tomcat7的解决方法

    有朋友会遇到在New Server对话框中选择了Tomcat 6/7后却无法单击“Next”按钮的问题,接下来通过本文给大家分享Eclipse添加新server时无法选择Tomcat7的解决方法,需要的朋友参考下
    2017-01-01
  • Tomcat配置访问日志和线程数的实现步骤

    Tomcat配置访问日志和线程数的实现步骤

    本文主要介绍了Tomcat配置访问日志和线程数的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论