tomcat优化

简介: tomcat优化

一、tomcat优化

关于tomcat优化可以考虑从内存、并发、缓存三个方向进行优化

1、查看tomcat服务器状态

如上启动tomcat之后点击server status,需要登录,用户名和密码以及权限可以在conf/tomcat-users进行配置

登录之后

可以看到当前tomcat服务器状态

2、tomcat之内存优化

3、tomcat之并发优化

Tomcat 默认配置的最大请求数是150,也就是说同时支持150 个并发,当然了,也可以将其改大。当某个应用拥有250 个以上并发的时候,应考虑应用服务器的集群。具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给JVM 的内存越多性能也就越高,但也会加重GC 的负担。

在 tomcat 配置文件 server.xml 中的Connector配置,和连接数相关的参数有

  • maxThreads 客户请求最大线程数 ,大并发请求时,tomcat能创建来处理请求的最大线程数,超过则放入请求队列中进行排队,默认值为200;
  • minSpareThreads Tomcat初始化时创建的 socket 线程数 ,最小空闲线程数,任何情况都会存活的线程数,即便超过了最大空闲时间,也不会被回收,默认值4;
  • maxSpareThreads Tomcat连接器的最大空闲 socket 线程数 ,最大空闲线程数,在最大空闲时间(maxIdleTime)内活跃过,此时空闲,当空闲时间大于maxIdleTime则被回收,小则继续存活,等待被调度,默认值50;
  • enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名 ,取值为:true 或 false。为了提高处理能力,应设置为 false
  • redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
  • acceptAccount 监听端口队列最大数,满之后客户请求会被拒绝(不能小于maxSpareThreads ) ,当最大线程数(maxThreads)被使用完时,可以放入请求队列排队个数,超过这个数返回connection refused(请求被拒绝),一般设置和maxThreads一样,不过这个具体需要根据自己的应用实际访问峰值和平均值来权衡,默认值为100;
  • connectionTimeout 连接超时 ,网络连接超时,假设设置为0表示永不超时,这样设置隐患巨大,通常可设置为30000ms,默认60000ms。
  • minProcessors 服务器创建时的最小处理线程数 ,用于提高系统处理性能,默认值为 10
  • maxProcessors 服务器同时最大处理线程数 ,即:并发处理的最大请求数,默认值为 75
  • URIEncoding URL统一编码
  • maxIdleTime: 最大空闲时间,超过这个空闲时间,且线程数大于minSpareThreads的,都会被回收,默认值1分钟(60000ms);

配置示例

<Connector port="9027"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="100"
  maxSpareThreads="1000"
  minProcessors="100"
  maxProcessors="1000"
  enableLookups="false"
  URIEncoding="utf-8"
  acceptCount="1000"
  redirectPort="8443"
  disableUploadTimeout="true"/>

其中和最大连接数相关的参数为 maxProcessors 和 acceptCount。如果要加大并发连接数, 应同时加大这两个参数。 web server 允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows 是 2000 个 左右,Linux 是 1000 个左右

4、缓存优化

也是在在 tomcat 配置文件 server.xml 中的Connector配置,参数如下

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

如下示列

<Connector port="9027"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="100"
  maxSpareThreads="1000"
  minProcessors="100"
  maxProcessors="1000"
  enableLookups="false"
  compression="on"
  compressionMinSize="2048"
  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  connectionTimeout="20000"
  URIEncoding="utf-8"
  acceptCount="1000"
  redirectPort="8443"
  disableUploadTimeout="true"/>

二、tomcat session

1、设置tomcat seesion过期时间

conf/web.xml 单位:分钟 默认30分钟

<session-config>
        <session-timeout>30</session-timeout>
    </session-config>

2、tomcat session 复制



相关文章
|
9月前
|
Java 应用服务中间件 Apache
Tomcat部署及优化
Tomcat部署及优化
72 0
|
2天前
|
算法 Java 应用服务中间件
|
18天前
|
缓存 监控 Java
【建议收藏】Tomcat 优化总结
以上是V 哥整理的 Tomcat 优化的一些点,希望对你有所帮助,目前Tomcat已更新到11版本,你在项目中是使用哪个版本呢,如果有一些独到的优化策略,欢迎留言告诉我,感谢。
|
18天前
|
运维 Java 应用服务中间件
Nginx+Tomcat动静分离及Nginx优化(企业案例)
Nginx+Tomcat动静分离及Nginx优化(企业案例)
|
18天前
|
Java 应用服务中间件
优化tomcat的性能
优化tomcat的性能
|
18天前
|
Java 应用服务中间件 Linux
深入学习Tomcat服务器优化实践
深入学习Tomcat服务器优化实践
34 0
|
8月前
|
缓存 Java 应用服务中间件
百度搜索:蓝易云【Tomcat 部署及优化详细教程!】
以上是Tomcat部署和优化的一些基本步骤和建议。请注意,在实际应用中,根据具体需求和环境,可能需要采取其他措施来进一步优化Tomcat的性能和安全性。建议参考Tomcat官方文档和相关资源,以获得更详细的信息和最佳实践。
74 4
|
12月前
|
监控 网络协议 安全
tomcat多实例优化及zabbix监控群集(二)
tomcat多实例优化及zabbix监控群集
133 0
|
12月前
|
监控 Java 应用服务中间件
tomcat多实例优化及zabbix监控群集(一)
tomcat多实例优化及zabbix监控群集
111 0