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 复制

Tomcat集群(使用了nginx负载) - - ITeye博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序三两行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值