记一次jvm参数调优

随着开发的持续进行,开发的系统也逐渐变大。程序是部署在tomcat下的,tomcat的启动和请求的响应也越来越慢。

tomcat的启动时间:
tomcat的启动时间很长
请求响应时间:
在这里插入图片描述

由于在自己的电脑上并没有这种情况,而公司部署的服务器是比较老的电脑,所以我以为是电脑年代久远,性能低导致问题的出现。然而事情并没有那么简单。

在请求数据量较大的接口时,又出现别的问题。
在这里插入图片描述
问题比较明显,百度一搜就知道原因:
在这里插入图片描述
于是在tomcat目录下/bin/catalina.bat以下添加以下配置:

set JAVA_OPTS= -Xms4096m -Xmx4096m

当时想着这个内存越大越好嘛(-Xms、-Xmx大小建议相同),于是分配了4g,可是配置了这么多内存后,tomcat根本启动不了,报了以下错误:
在这里插入图片描述
这个错误大概就是说:指定的大小超过了最大可表示大小。
百度以后发现是以下原因:
在这里插入图片描述
于是老老实实把内存改为1g,成功启动后,发现tomcat的启动和请求的响应慢的问题并没有解决。于是我想是不是参数并没有生效。于是又又又去百度。发现有一款JDK自带的JVM工具–jvisualvm。在cmd命令行中输入jvisulavm便可以使用。
在这里插入图片描述
找到对应tomcat的jvm参数如下,发现并没有找到-Xms、-Xmx参数配置。
在这里插入图片描述
于是只好再次打开tomcat目录下/bin/catalina.bat文件查看。发现我的配置如下:

set JAVA_OPTS=-Xms1024m -Xmx1024m
set JAVA_OPTS=-Dspring.profiles.active=dev

很明显,第二项的配置覆盖了第一项的配置,导致-Xms、-Xmx参数没有生效。于是再次修改配置文件如下,然后再次启动tomcat。

set JAVA_OPTS=-Dspring.profiles.active=dev -Xms1024m -Xmx1024m

tomcat启动的时间明显变快了,如下:
在这里插入图片描述
配置也生效了,如下:
在这里插入图片描述
至此,问题已经解决,由于是第一次遇到,中间出了很多问题,磕磕绊绊的,但最后还是解决了。

最后还要一个问题,为什么我用idea启动项目并没有出现内存溢出的问题,而用tomcat单独部署是却出了问题?
再次打开jvisualvm中idea的jvm参数,有种似曾相识的感觉。
在这里插入图片描述
原来以前解决idea控制台打印中文乱码的时候,在idea安装目录/bin文件夹下,有这么两个文件。
在这里插入图片描述
打开对应我们电脑64位的文件,发现一个jvm参数,一个是解决乱码的参数。正是因为idea默认配置了相对较大的参数,所以才没出现内存溢出的问题。
在这里插入图片描述

参考文章:
1、jvm内存溢出的三种情况以及解决办法
2、JVM的XMS和XMX参数设置为相同值有什么好处?
3、JVM调优总结 -Xms -Xmx -Xmn -Xss
4、jvisualvm 工具使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值