Tomcat优化

Connector配置建议

线程池优化

maxConnections - 最大连接数

可以通过 ulimit -a 查看 Linux 服务器目前允许最大的连接数,重点关注 open files 也就是说 Tomcat 最大也就能支持到 1024,参数具体说明见文末。
1、修改服务器最大连接数,修改 /etc/security/limits.conf

limits.conf

拉到最底下,复制上面两行到下面,修改 core -> nofilerss->nofiles。大小 0 -> 65535,10000 -> 65535。保存

2、添加 maxConnections 的配置
2.1 对 CPU 要求更高时,建议不要配置过于大
2.2 对 CPU 要求不是特别高的时,建议配置在 3000 左右。具体根据压测决定。

3、配置的地方: server.xml -> connector 找到 8080 的 connector,添加 maxConnections 属性


server.xml

maxThreads - 最大线程数

建议配置在 500-700


server.xml

acceptCount - 最大排队等待数

一般保持与最大线程数持平就好了


server.xml

JVM 优化建议

JVM 优化建议

修改 catalina.sh 在最顶部添加

catalina.sh

查看有没有生效使用 ps -ef|grep tomcat 找到进程编号,然后 jmap -heap xxx 可以检查参数

Gzip 相关配置

  • compression 打开压缩功能
  • compressableMimeType 压缩类型
  • compressionMinSize 启用压缩的输出内容大小
server.xml

其他配置

  • enableLookups 开启反查域名
  • connectionTimeout 网络连接超时阈值
  • minSpareThreads 最小空闲线程数
server.xml

tomcat的三种运行模式

  • BIO 一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。
  • NIO 利用Java的异步IO处理,可以通过少量的线程处理大量的请求。
    Tomcat8在Linux系统中默认使用这种方式。
  • APR
    即 Apache Portable Runtime,原生C语言编写,从操作系统层面解决 I/O 阻塞问题。
    Tomcat7 或 Tomcat8 在 Win7 或以上的系统中启动默认使用这种方式。
    Linux 如果安装了 apr 和 native,Tomcat 直接启动就支持 apr。

ulimit -a 参数描述

core file sizecore 文件的最大值为100 blocks
data seg size 进程的数据段可以任意大
file size 文件可以任意大
pending signals 最多有2047个待处理的信号
max locked memory 一个任务锁住的物理内存的最大值为32kB
max memory size 一个任务的常驻物理内存的最大值
open files 一个任务最多可以同时打开1024的文件
pipe size 管道的最大空间为4096字节
POSIX message queues POSIX 的消息队列的最大值为819200字节
stack size 进程的栈的最大值为8192字节
cpu time 进程使用的CPU时间
max user processes 当前用户同时打开的进程(包括线程)的最大个数为2047
virtual memory 没有限制进程的最大地址空间
file locks 所能锁住的文件的最大个数没有限制

你可能感兴趣的:(Tomcat优化)