美文网首页运维
TOMCAT-性能调优

TOMCAT-性能调优

作者: 小亮__ | 来源:发表于2019-06-12 22:29 被阅读4次
    tomcat原理图

    DefaultServlet:Tomcat处理静态资源的Servelt
    DispatcherServlet:处理rest请求的Servelt
    JspServlet:Tomcat处理Jsp的Servelt

    性能调优(场景一):Rest服务
    • 如果Tomcat没有用到静态资源的时候,通过移除conf/web.xml中的org.apache.catalina.servlets.DefaultServlet
    • 如果Tomcat没有用到Jsp的时候,通过移除conf/web.xml中的org.apache.jasper.servlet.JspServlet
    • 移除Valve:例如,移除AccessLgoValve,他的主要作用是记录日志,原理是类似于Filter的,因为会占用Java的计算时间的占用,可以使用Nginx的AccessLog来代替
    性能调优(场景二)如果需要JSP的时候
    • 设置development = false 表示不需要编译JSP

    • Jsp 可以通过Maven的org.codehaus,moji:hspc-maven-plugin插件进行预编译, 这样做可以提升,第一次访问JSP的效率

      <dependency>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.3</version>
      </dependency>
      

    JspServlet如果development参数为true,它会自定义检查是否修改,如果修改重新翻译,再编译(加载和执行)。所以JspServelt开发模式可能会导致OOM,卸载Class不及时的时候可能会导致Perm区域不够

    线程池优化—例子

    整体评估,高峰期的QPS达到了10W的,一共有10台机器

    • 每台支撑1w的QPS。

    • 试用Jmeter压测发现高峰请求一次需要的时间是平局值RT =10ms,单线程1秒钟完成100个请求

    • 10000/100 = 100个线程,则表示100个线程比较合适,但还考虑打RT有可能不太稳定,并且加上线程切换耗时增加,可以考虑设置150-200比较合适

    • 关闭自动重载

    • 修改连接线城池的数量

    相关文章

      网友评论

        本文标题:TOMCAT-性能调优

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