Tomcat性能优化

server.xml的优化:

连接器模式改为NIO模式 :

![image-20201117155304154](2020-11-17 02-Tomcat性能优化.assets/image-20201117155304154.png)

  • NIO模式最大化压榨了CPU,把时间片更好利用起来;
  • NIO适合大量长连接。

关闭自动重载:

  • 关闭自动重载,默认是true(不同版本中有差异);
  • 自动加载增加运行开销并且很容易内存溢出。

![image-20201117155501721](2020-11-17 02-Tomcat性能优化.assets/image-20201117155501721.png)

配置线程池:

Executor标签中属性:

  • namePrefix:线程命名前缀;
  • maxThreads:最大允许线程数;
  • minSpareThreads:最少空闲线程,相当于初始化的线程,线程池中的线程。

Connector标签中的属性:

  • executor:对上面Executor标签标签的引用。

web.xml优化:

应用程序运行时最终会加载conf/web.xml和应用的web.xml的合集。

servlet优化(当前应用是REST应用):

  • 去掉不必要的资源:JspServlet;
  • seesion也可以移除。

valve优化:

  • 移除掉AccessLogValve;
  • valve实现都需要消耗Java应用的计算时间,一般我们可以使用nginx来记录日志。

JSP预编译优化:

  • JSP -> JAVA -> CLASS;
  • 可使用ant先编译jsp;
  • Jspservlet开发模式(development)设置为false。

SpringBoot中的优化:

Maven中Springboot引入Tomcat:

org.springframework.boot spring-boot-starter-tomcat provided

设置线程池:

  • server.tomcat.max-threads=1000

关闭Accesslog日志:

  • server.tomcat.accesslog=false