Tomcat调优

项目使用中Tomcat性能一直是瓶颈,从以下两点进行优化:线程池,运行模式。
1.并发配置

<Executor name=“tomcatThreadPool” # 配置TOMCAT共享线程池,NAME为名称 
namePrefix=“HTTP-8088-exec-” # 线程的名字前缀,用于标记线程名称
prestartminSpareThreads=“true” # executor启动时,是否开启最小的线程数
maxThreads=“5000” # 允许的最大线程池里的线程数量,默认是200,大的并发应该设置的高一些,这里设置可以支持到5000并发
maxQueueSize=“100” # 任务队列上限
minSpareThreads=“50” # 最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源
maxIdleTime=“10000” # 超过最小活跃线程数量的线程,如果空闲时间超过这个设置后,会被关别。默认是1分钟。
/>

<Connector port=“8088” protocol=“org.apache.coyote.http11.Http11NioProtocol”
connectionTimeout=“5000” redirectPort=“443” proxyPort=“443” executor=“tomcatThreadPool” # 采用上面的共享线程池
URIEncoding=“UTF-8”/>
际情况设置

maxThreads=“600” ///最大线程数
minSpareThreads=“100”///初始化时创建的线程数
maxSpareThreads=“500”///一旦创建的线程超过这个值,Tomcat就会关闭不再需要
的socket线程。
acceptCount=“700”//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

2.运行模式配置
1)、BIO(阻塞式):Tomcat 的默认模式,该模式性能较低,没有经过任何优化处理和支持,一个线程处理一个请求。缺点:并发量过大时,线程数较多,浪费资源。Tomcat7 及以下版本,在 linux 系统中默认使用该模式。

2)、NIO-Non-blocking IO(非阻塞IO):Java NIO 可以让你非阻塞的使用 IO,例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入通道也类似。Tomcat8 在Linux系统中默认使用这种方式。

3)、APR:Apache Portable Runtime,从操作系统层面解决io阻塞问题。Tomcat7 或 Tomcat8 在 Win7 或以上的系统中启动默认使用这种方式。Linux 如果安装了 apr 和 native,Tomcat 直接启动就支持 apr

默认bio,可配置成以下nio

主要介绍apr配置,项目使用Linux环境,win不考虑,实际很少用

备注:需要两个包,官网下载,或本文链接获取 https://download.csdn.net/download/leelongjava/11456640
apr-1.7.0.tar.gz
apr-util-1.6.1.tar.gz
安装过程…
a)解压文件
cd /usr/local/
tar -zxvf apr-1.7.0.tar.gz
tar -zxvf apr-util-1.6.1.tar.gz

b)安装apr和apr-util
cd apr-1.7.0
./configure --prefix=/usr/local/apr
make
make install
cd …
cd apr-util-1.6.1
./configure --with-apr=/usr/local/apr //配置指向apr-1.7.0的安装目录
// 编译过程中遇到 expat.h: No such file or directory 问题,安装 expat-devel
// rpm -ivh expat-devel-2.1.0-10.el7_3.x86_64.rpm
make
make install

c)安装 tomcat-native,Tomcat自带资源包
cd /usr/local/tomcat/bin
tar -zxvf tomcat-native.tar.gz
cd tomcat-native-1.1.29-src/jni/native
./configure --with-apr=/usr/local/apr --with-java -home=/usr/java/jdk1.7.0_25 // jdk包名根据情况更换
make
make install

d)设置 apr 的环境变量
vi /etc/profile
#最后面添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
#profile生效
source /etc/profile
也可以修改 tomcat 的启动 shell ( catalina.sh ),在该文件中加入启动参数: CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"

e)启动验证tomcat,查看日志 org.apache.coyote.http11.Http11AprProtocol init,表示成功

#备注问题
1.出现 ssl 报错问题
server.xml 添加以下设置<
Listener className=“org.apache.catalina.core.AprLifecycleListener” SSLEngine=“off” />

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值