Tomcat优化之JVM优化

作者: 桌面小鱼 | 来源:发表于2018-09-21 02:07 被阅读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 命令 查看堆信息

    可以看到已经生效。

    相关文章

      网友评论

        本文标题:Tomcat优化之JVM优化

        本文链接:https://www.haomeiwen.com/subject/fqionftx.html