Tomcat优化配置文档

发表于 2020-04-22  7.97k 次阅读


Tomcat不是我们安装好打开就能在生产环境使用了,这样无疑会出现各种问题,所以需要优化一下Tomcat,本文介绍了Tomcat优化4种大类,可根据自身业务需要进行优化

Tomcat目录

bin —— 存放启动和关闭Tomcat的脚本文件。

conf —— 存放Tomcat服务器的各种配置文件。

lib —— 存放Tomcat服务器的支撑jar包。

logs —— 存放Tomcat的日志文件。

temp —— 存放运行时产生的临时文件。

webapps —— web应用所在目录,供外界访问的web资源的存放目录。

work —— Tomcat的工作目录。

Tomcat优化

1、内存优化

在catalina.sh中添加

• -server:启用jdk的server版本。

• -Xms:虚拟机初始化时的最小堆内存。

• -Xmx:虚拟机可使用的最大堆内存。 #-Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落

• -XX:PermSize:设置非堆内存初始值,默认是物理内存的1/64。

• -XX:MaxNewSize:新生代占整个堆内存的最大值。(java的堆内存,动态分配堆内存)

• -XX:MaxPermSize:Perm(俗称方法区)占整个堆内存的最大值,也称内存最大永久保留区域。

2、连接数优化

优化连接数,主要是在conf/server.xml配置文件中进行修改。

优化并发线程数

• maxThreads:tomcat可用于请求处理的最大线程数,默认是200

• minSpareThreads:tomcat初始线程数,即最小空闲线程数

• maxSpareThreads:tomcat最大空闲线程数,超过的会被关闭

• acceptCount:当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理.默认100,可自行设置排队

connectionTimeout: 等待超时的时间数(以毫秒为单位),建议修改为20000以上;

使用线程池

  • name:该线程池的标记
  • maxThreads:线程池中最大活跃线程数,默认值200(Tomcat7和8都是)
  • minSpareThreads:线程池中保持的最小线程数,最小值是25
  • maxIdleTime:线程空闲的最大时间,当空闲超过该值时关闭线程(除非线程数小于minSpareThreads),单位是ms,默认值60000(1分钟)
  • daemon:是否后台线程,默认值true
  • threadPriority:线程优先级,默认值5
  • namePrefix:线程名字的前缀,线程池中线程名字为:namePrefix+线程编号

3、Tomcat缓存优化

是在conf/server.xml配置文件中进行修改。

compression 打开压缩功能

compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB

compressableMimeType 压缩类型

connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间

4、Tomcat Connector三种运行模式

Connector(连接器)组件是Tomcat最核心的两个组件之一,主要的职责就是负责接收客户端连接和客户端请求的处理加工

BIO:(默认的模式,性能最差,没有经过任何优化处理和支持

一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。Tomcat7或以下在Linux系统中默认使用这种方式

NIO:(拥有比传统I/O操作(bio)更好的并发运行性能

利用Java的异步IO处理,可以通过少量的线程处理大量的请求。Tomcat8在Linux系统中默认使用这种方式。Tomcat7必须修改Connector配置来启动(conf/server.xml配置文件)

APR:(从操作系统级别来解决异步的IO问题,大幅度的提高性能

从操作系统层面解决io阻塞问题。Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能Linux如果安装了apr和native,Tomcat直接启动就支持apr。

本站文章基于国际协议BY-NA-SA 4.0协议共享;
如未特殊说明,本站文章皆为原创文章,请规范转载。

0

小霜网丨一个清新文艺有趣的万能小站