从WAS迁移到TOMCAT中间件容器发布区别和差异

1、从IBM小型机迁移到阿里云ECS

2、从使用WAS中间件->CAT中间件容器发布

问题:同等资源大小,压测TPS、ECS比IBM低

通过资源使用情况发现:ECS服务器资源CPU使用率偏低20%。IBM小型机CPU使用率较高70%

查看WAS的配置:初始堆大小、最大堆大小、通用JVM参数。

查看TOMCAT配置:查看JVM配置情况。

需tomcat调整JVM启动参数,即可调优。

Linux环境下

1、添加JVM参数
到Tomcat的bin目录下,打开文件catalina.sh,添加如下参数,然后保存。

JAVA_OPTS="-Xms512M -Xmx1024M"

这里写图片描述

2、检验是否生效
执行startup.sh启动tomcat。

./startup.sh

查看JVM参数,输入如下命令。

jps -v

如下图所示,JVM启动参数和我们添加的参数一样,说明有效。
这里写图片描述

jvm在client模式,进行内存回收时,会停下所有的其它工作,带回收完毕才去执行其它任务,在这期间eclipse就卡住了。所以适当的增加jvm申请的内存大小来减少其回收的次数甚至不回收,就会是卡的现象有明显改善。

 

主要通过以下的几个jvm参数来设置堆内存的:

-Xmx512m最大总堆内存,一般设置为物理内存的1/4
-Xms512m初始总堆内存,一般将它设置的和最大堆内存一样大,这样就不需要根据当前堆使用情况而调整堆的大小了
-Xmn192m年轻带堆内存,sun官方推荐为整个堆的3/8
堆内存的组成总堆内存 = 年轻带堆内存 + 年老带堆内存 + 持久带堆内存
年轻带堆内存对象刚创建出来时放在这里
年老带堆内存对象在被真正会回收之前会先放在这里
持久带堆内存class文件,元数据等放在这里
-XX:PermSize=128m持久带堆的初始大小
-XX:MaxPermSize=128m持久带堆的最大大小,eclipse默认为256m。如果要编译jdk这种,一定要把这个设的很大,因为它的类太多了。

参数      描述

-Xms      JVM初始化堆的大小

-Xmx      JVM堆的最大值

这两个值的大小一般根据需要进行设置。初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。一般而言,这个参数不重要。但是有的应用程序在大负载 的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必 须重复地增加内存来满足使用。

由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。一般使用数据量较大的应用程序会使用持久对象,内存使用 有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值 的80%。

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

Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS='-Xms【初始化内存大小】

-Xmx【可以使用的最大内存】'

资料可查看:【Tomcat】Tomcat配置JVM参数步骤 - QiaoZhi - 博客园

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QC·Rex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值