美文网首页运维
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