相关参数说明:
connectionTimeout - 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
keepAliveTimeout - 长连接最大保持时间(毫秒)。此处为15秒。
maxKeepAliveRequests - 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)
maxHttpHeaderSize - http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。
URIEncoding - 指定Tomcat容器的URL编码格式。
acceptCount - 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个。
disableUploadTimeout - 上传时是否使用超时机制。
enableLookups - 是否反查域名,取值为:true或false。为了提高处理能力,应设置为false。
bufferSize - 输入流缓冲大小,默认值2048 bytes。
maxSpareThreads - 做多空闲连接数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程 。
maxThreads - 最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
minSpareThreads - 最小空闲线程数,Tomcat初始化时创建的线程数。
compression="on" 打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB 
compressableMimeType压缩类型

1.开启NIO功能:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" />

2.停用DNS查询:
加上enableLookups="false";这样就不使用DNS查询,也不会有延迟了
除非需要所有连接到服务器的HTTP客户端的完整主机名称
Connector的enableLookups性属的意义是:调用request.getRemoteHost()是否会通过DNS查询来取得远处客户端的真正主机名称。true表示会查询,false表示以字符串格式传回客户端的IP地址。默认值是:true

3.使用线程池:
<!--  
Tomcat6  minSpareThreads,maxSpareThreads参数不再被支持 需要在 Executor 中配置  
maxThreads="600"       ///最大线程数  
minSpareThreads="100"///初始化时创建的线程数  
maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。  
acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个。  
--> 
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" />
然后,修改<Connector ...>节点,增加executor属性,如:

<Connector executor="tomcatThreadPool"
               port="80" protocol="HTTP/1.1"
               connectionTimeout="60000"
               keepAliveTimeout="15000"
               maxKeepAliveRequests="1"
               redirectPort="443"
               ....../>

注意:可以多个connector公用1个线程池。

4.为了提高安全性,一般情况下屏蔽 AJP,如果每有屏蔽,当你访问8009端口时,tomcat后台会报错,同时前台也会把你服务器tomcat暴露出来.
注释或者删除server.xml中的 Connector节点
Xml代码
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

5.设置压缩,减少网络流量,在Connector中增加:
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"/

6.利用JMX监控Tomcat运行情况,需要手工调整启动参数,如下:

打开cataline.bat,增加一行
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%conflogging.properties"

linux下修改cataline.sh:
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=%CATALINA_BASEconflogging.properties"

注意JDKjrelibmanagementmanagement.properties文件必须存在。重新启动tomcat节点,然后用jconsole连接(此处端口wei10090)

Tomcat优化操作相关推荐

  1. 浅谈tomcat中间件的优化【转】

    今天来总结一下tomcat的一些优化的方案,由于本人才疏学浅,写的不好,勿喷! tomcat对于大多数从事开发工作的童鞋应该不会很陌生,通常做为默认的开发环境来为大家服务,不过tomcat默认的一些配 ...

  2. 全程配图超清晰的JAVA后台控制(maven+Tomcat+JDBC)第二期

    上一期我们已经说了如何通过maven新建一个后端程序,(全程配图超清晰的JAVA后台控制(maven+Tomcat+JDBC)第一期.)并写出了一个简单的Servlet程序然后通过IDEA和Tomca ...

  3. springboot设置文件上传大小(tomcat默认1M)

    application.yml # 设置文件上传大小(tomcat默认1M) server:tomcat:max-http-form-post-size: -1 spring:servlet:mult ...

  4. 在docker上安装部署tomcat项目 超简单,拿来主义

    在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...

  5. Linux下tomcat的安装与卸载以及配置(超简单)

    无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...

  6. docker通过镜像方式安装tomcat

    一.搜索镜像 docker search tomcat 二.下载镜像 docker pull tomcat:8 下载 docker image ls(docker images) 查看镜像 三.实例容 ...

  7. tomcat外网映射工具

    sunny-ngrok 运行sunny-ngrok 输入客户端ID 运行成功 域名(外网)直接访问 注释:tomcat端口改为8080,并且保证http://127.0.0.1:8080 可以正常访问 ...

  8. 在idea使用maven工程建立web项目时,启动Tomcat访问不到项目首页。

    在idea使用maven工程建立web项目时,启动Tomcat访问不到项目首页,输入URL:http://localhost:8080/时一片空白也不报错 ,按下面步骤检查: 1.看下这几个地方是否配 ...

  9. 详解 Tomcat 的连接数与线程池

    原文出处:编程迷思 前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文 ...

最新文章

  1. PyTorch里这个bug,你知道吗?
  2. 结合Jexus + Kestrel 部署 asp.net core 生产环境
  3. springcloud的理解
  4. 鲲鹏920 centos7 postgresql12 postgis2.5.4编译
  5. 论文浅尝 - AAAI2020 | 通过知识库问答改善知识感知对话生成
  6. 鸿蒙os开发者大会的时间,华为开发者大会2020时间已确定,鸿蒙2.0和EMUI 11即将到来...
  7. 20211201:力扣第268周双周赛(上)
  8. vscode——配置终端集成bash和cmd
  9. Zabbix钉钉机器人报警
  10. 基于c语言的拉马努金法计算圆周率近似值
  11. php mongodb lookup,mongodb-在$lookup管道中使用$match$进行聚合
  12. React TypeScript react+ts 包下载
  13. Android studio 高德地图开发
  14. 天玑1300和骁龙778plus哪个好
  15. linux将一段时间内文件压缩,在 Linux 上压缩文件的 5 种方法
  16. 如何手动下载并安装 Visual Studio Code 的 SAP Fiori tools - Extension Pack 扩展
  17. 数据库系统概论--读书笔记--8 关系运算: 选择 投影 连接 除运算
  18. 解决win10 软件商店出现错误,和edge浏览器打开无法访问网络
  19. 如何用PHP调用学小易题库,如何使用 PHP 输出 hello world?()
  20. 利用easyUI实现tree叶子节点横向展示以及checkbox联级勾选改造

热门文章

  1. 用最简单易懂的方式告诉大家——区块链到底是什么?
  2. 用途DF无线数据收发模
  3. 网络体系结构基本概念及OSI七层模型
  4. 私有云是伪命题:真正的私有云 ≈ 公有云
  5. iOS-申请苹果开发者账号之邓白氏编码查询
  6. php商品在最少购买,ecshop每个商品添加最少购买量最小订购量
  7. 使用 psycopg2 时遇到的两个坑
  8. 电脑播放器哪个最好用
  9. 《Unity 3D脚本编程:使用C#语言开发跨平台游戏》序言
  10. Lua开发--lua变量