tomcat优化

Tomcat在各位JavaWeb从业者常常就是默认的开发环境,如果用tomcat做为生产环境则有很多地方需要去优化,下面就简单的讲解来从几个大方面去优化(tomcat的基本原理啥的就不讲了)

一、网络优化
二、并发优化
三、底层优化
四、主体优化
五、集群优化

一、网络优化
1、使用非阻塞连接协议(tomcat8 取消了 BIO(阻塞的连接协议))
org.apache.coyote.http11.Http11Protocol 阻塞模式的连接协议
org.apache.coyote.http11.Http11NioProtocol 非阻塞模式的连接协议
org.apache.coyote.http11.Http11Nio2Protocol 非阻塞模式的连接协议
org.apache.coyote.http11.Http11AprProtocol – 本地连接协议

2、启用压缩,消耗CPU,减小网络传输大小(加快传输速度、节省带宽)
在server.xml文件中 Connector 配置
compression="on"
disableUploadTimeout="true"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,a
pplication/javascript"
URIEncoding="utf-8"

3、超时配置
connectionTimeout="20000" 可以将超时时间设置为自己的业务处理时间

二、并发优化
1、连接数:maxConnections(排队数量)
maxThreads的设置既与应用的特点有关,也与服务器的CPU核心数量有关。通过前
面介绍可以知道,maxThreads数量应该远大于CPU核心数量;而且CPU核心数越大,
maxThreads应该越大;应用中CPU越不密集(IO越密集),maxThreads应该越大,以
便能够充分利用CPU。当然,maxThreads的值并不是越大越好,如果maxThreads过大,
那么CPU会花费大量的时间用于线程的切换,整体效率会降低

2、处理线程:maxThreads(操作系统允许多少线程,线程多大会引起切 换效能)
maxConnections的设置与Tomcat的运行模式有关。如果tomcat使用的是BIO,那么
maxConnections的值应该与maxThreads一致;如果tomcat使用的是NIO,那么类似于
Tomcat的默认值,maxConnections值应该远大于maxThreads

3、等候队列:acceptCount
这个参数需要根据业务和经验值给出一个判断,如果设置过大,后面进入的请求等待时
间会很长;如果设置过小,后面进入的请求立马返回connection refused

三、底层优化
JVM优化:固定堆内存,多线程并发收集,对象预留新生代,大对象 进入老年代,启用内联
多实例: 多个tomcat实例在一台机上,使用Nginx转发
操作系统优化:配置系统的一些参数如: 线程数(Linux服务器每进程不允许超过1000线程) 关闭IPV6,最大文件数配置、Linux线程栈大小的设置

四、主体优化
1、 关闭shutdown端口:<Server port="-1" shutdown="SHUTDOWN">
2、关闭ajp连接:注释<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3、取消访问日志Valve阀门
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />

五、集群优化
1、当线程数量达到250以上考虑集群部署
2、采用redis做session共享

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 常见的http服务器有apache,nginx,iis,tomcat等。HTTP服务器本质上也是一种应用程序——它...
    可乐爱上咖啡阅读 4,063评论 1 49
  • Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器。而且优化后的...
    千淘萬漉阅读 1,188评论 2 7
  • http://blog.csdn.net/wuliu_forever/article/details/526071...
    鱼仔_1625阅读 1,025评论 0 1
  • Connector配置建议 线程池优化 maxConnections - 最大连接数 可以通过 ulimit -a...
    Loofer阅读 656评论 0 0
  • 大连市中等职业学校市级骨干教师 教学能力提升培训班(上海) 背景:“学习讲话、对标上海、解放思想、真抓实干。”...
    b9728bcfebb4阅读 260评论 0 0

友情链接更多精彩内容