全面的tomcat优化参数总结,都在这里了

新闻 前端
最近准备对xx系统做一些优化工作,这里先从tomcat参数方面入手,后面再针对mysql和具体sql去做一下优化。

 概述

最近准备对xx系统做一些优化工作,这里先从tomcat参数方面入手,后面再针对mysql和具体sql去做一下优化。下面基于之前介绍的tomcat参数优化来做整体介绍。

1、目前tomcat配置

可以看到目前tomcat是基本没做优化的,基本为默认参数。

史上最全的tomcat优化参数总结,都在这里了
史上最全的tomcat优化参数总结,都在这里了

2、优化后的配置

2.1、注释AJP协议

这个影响倒不是很大。

史上最全的tomcat优化参数总结,都在这里了

2.2、设置JVM

这里要根据服务器内存,然后自己规划下就行。

史上最全的tomcat优化参数总结,都在这里了

2.3、核心参数

这里的参数比较重要,影响会比较大。

史上最全的tomcat优化参数总结,都在这里了

3、启动日志

可以看到通讯模式改为了NIO。

史上最全的tomcat优化参数总结,都在这里了

参数说明

1、内存--设置JVM参数

  1. JAVA_OPTS="-XX:PermSize=256M -XX:MaxPermSize=512m -Xms2048m -Xmx4096m -Duser.timezone=Asia/Shanghai" 

说明:

  • -Xms:设置JVM初始内存大小(默认是物理内存的1/64)
  • -Xmx:设置JVM可以使用的最大内存(默认是物理内存的1/4,建议:物理内存80%)
  • -XX:PermSize :为JVM启动时Perm的内存大小
  • -XX:MaxPermSize :为最大可占用的Perm内存大小(默认为32M)

2、禁用AJP协议

  1. 注释 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 

ajp协议是tomcat为了动静资源处理分离时,通过该协议可以将css、js等静态资源请求转发到Apache的http服务器处理,提高并发量。但是在优化tomcat时,没有用到Apache服务器,则需要将其禁用。

3、将BIO通讯模式修改为NIO通讯模式

  1. <Connector connectionTimeout="20000" port="8066" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8448"/> 

其中,原来的protocol="HTTP/1.1"表示遵循http1.1协议,同时,也是一个最原始的未经优化的通信协议,修改之后的 protocol="org.apache.coyote.http11.Http11NioProtocol" ,表示以 NIO模式启动。

4、并发--启用外部连接池

maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为150

  1. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="400" minSpareThreads="4"/> 
  2. <Connector connectionTimeout="20000" port="8066" executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11NioProtocol"/> 

5、配置缓存

  1. <Connector port="xxx" 
  2. compression="on" 
  3. compressionMinSize="2048" 
  4. compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 
  5. connectionTimeout="20000" 
  6. disableUploadTimeout="true" /> 

说明:

  • compression 打开压缩功能
  • compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
  • compressableMimeType 压缩类型
  • connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间

6、优化连接器--最终模板

  1. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="400" minSpareThreads="4"/> 
  2. <Connector port="8080" executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11NioProtocol" 
  3. connectionTimeout="20000" 
  4. enableLookups="false" 
  5. maxPostSize="10485760" 
  6. URIEncoding="UTF-8" 
  7. useBodyEncodingForURI="true" 
  8. maxConnections="1000" 
  9. acceptCount="1000" 
  10. minProcessors="100" 
  11. maxProcessors="1000" 
  12. disableUploadTimeout="true" 
  13. compression="on" 
  14. compressionMinSize="2048" 
  15. compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 
  16. SSLEnabled="false" 
  17. /> 

说明:

  • acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
  • enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
  • connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为20000毫秒。
  • disableUploadTimeOut:允许Servlet容器,正在执行使用一个较长的连接超时值,以使Servlet有较长的时间来完成它的执行,默认值为false
  • maxPostSize:指定POST方式请求的最大量,没有指定默认为2097152
责任编辑:张燕妮 来源: 今日头条
相关推荐

2022-03-02 10:36:37

Linux性能优化

2017-10-24 14:57:58

AI人工智能机器学习

2018-03-19 14:43:28

2021-12-09 08:16:40

JVM参数系统

2021-10-06 16:21:32

类型对象Typescript

2023-12-11 21:59:01

时序分析深度学习自回归模型

2019-07-23 07:52:41

数据库MySQL优化方法

2018-01-19 09:38:28

数据库Oracle数据字典

2017-12-08 10:42:49

HBase切分细节

2017-08-28 16:40:07

Region切分触发策略

2019-12-04 07:57:22

6G5G网络

2018-11-28 10:39:01

5G网络运营商

2017-02-24 12:29:20

Android Thi开发板硬件

2016-05-20 11:14:55

内容缓存 传输策略优

2016-05-20 11:26:54

客户端优化 直播推流

2018-04-26 16:15:02

数据库MySQLMySQL 8.0

2021-07-01 09:00:00

安全数字化转型渗透

2016-05-12 14:54:39

UCloud

2018-03-31 08:45:52

iPhone交通卡iOS 11.3

2019-11-07 14:21:05

微软 Windows Linux
点赞
收藏

51CTO技术栈公众号