TomcatTomcat 记坑Tomcat

Tomcat优化之JVM优化

2018-09-21  本文已影响12人  桌面小鱼

JVM优化建议

理论:

-server  启用服务器模式

上服务器第一件做的事情;修改为服务器模式

-Xms、-Xmx 建议配置相同

原因:
        ①、内存是动态漂移的,当内存使用率低于30%或40%左右,jvm会把内存自动调成最小内存,从而保证内存的节约,当内存使用率达到70%左右时,jvm会把内存自动调成最大内存,从而保证有足够的内存进行使用
         ②、在正式服务器中,最大内存到最小内存这个漂移过程,本身就是耗费资源的

 可用内存的80% 是指Tomcat服务器的可用内存的80% 而非物理内存的80%,原因是有可能在一台机器上有多种服务,如:微服务、redis、Nginx。存在资源竞争情况,架构师会根据情况调整各服务之间的内存使用,所以Tomcat的可用内存不是机器的物理内存

-XX:MetaspaceSize:元空间初始值

-XXmaxMetaspaceSize:元空间最大内存

以上两个有关于元空间的值是针对于JDK1.8版本以上的。1.7以下是没有元空间概念的
是把持久化空间变成元空间,是在物理内存上的,可以认为是无上限的

推荐配置:与内存最大空间相同,从而保证元空间不会占满我们物理内存的情况,实际压测结论:这个配置可配可不配,影响不大

--XX:MaxNewSize -- 新生代最大内存

默认16M,如果服务器内存是32G或者64G内存大小时,建议配置成64M 或 128M  可以保证新生代的快速迭代

动手:

修改 /tomcat/bin/catalina.sh

主要修改CATALINA_OPTS相关信息

在文件的最上面编辑 添加以下内容

JAVA_OPTS=" -server -Xms128m -Xmx128m -XX:MetaspaceSize=128m 
-XX:MaxMetaspaceSize=128m -XX:MaxNewSize=32m"

Tomcat在启动的时候占用的这些资源后,其实我们线城池自然而然会同享这部分内存,变相的增加了线程池和线程的相关性

成果:

重启Tomcat

使用 ps -ef |gerp tomcat  查看tomcat的PID

端口号4531 

使用jmap -heap pid 命令 查看堆信息

可以看到已经生效。

上一篇下一篇

猜你喜欢

热点阅读