Connector配置建议
线程池优化
maxConnections - 最大连接数
可以通过 ulimit -a
查看 Linux 服务器目前允许最大的连接数,重点关注 open files 也就是说 Tomcat 最大也就能支持到 1024,参数具体说明见文末。
1、修改服务器最大连接数,修改 /etc/security/limits.conf
拉到最底下,复制上面两行到下面,修改
core
->nofile
,rss
->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
在最顶部添加
查看有没有生效使用 ps -ef|grep tomcat
找到进程编号,然后 jmap -heap xxx
可以检查参数
Gzip 相关配置
- compression 打开压缩功能
- compressableMimeType 压缩类型
- compressionMinSize 启用压缩的输出内容大小
其他配置
- enableLookups 开启反查域名
- connectionTimeout 网络连接超时阈值
- minSpareThreads 最小空闲线程数
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 所能锁住的文件的最大个数没有限制
网友评论