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 命令 查看堆信息
可以看到已经生效。
网友评论