(九) Tomcat 源码系列之 终章:性能优化

Tomcat 的性能优化可以从两个方面去考虑,JVM 优化,Tomcat 配置优化, 没有实际的开发经验和调优经验谈这个也是瞎几把扯淡,由于笔者仍在上大学,这方面接触不深,就不误人子弟了,了解一下即可

可参考 : Tomcat 性能优化

配置优化

在大多数情况下,默认的配置可以满足我们的需求,但遇到特殊情况,就要考虑配置最优的选项了。比如,服务器性能过强,默认配置不能发挥全部性能,这就有点浪费了。常用 Connector 的配置如下 :

maxConnections : 最大连接数,当到达该值时,服务器接受但不会处理更多的请求,额外的请求将会阻塞直到连接数低于该值,默认为 10000

connectionTimeout:网络连接超时时间,单位为毫秒,如果设置为 “0” 则表示永不超时,不建议这样设置,默认为 20000

acceptCount:最大排队等待数,当服务器的请求数量到达 maxConnections, Tomcat 会将请求放入该队列进行排序,默认为 10 。Tomcat 的最大请求处理数量为 maxConnectionns + acceptCount

keepAliveTimeout:保持连接的最长时间,单位为毫秒;

URIEncoding:设置 Tomcat 容器的 URL 编码格式;

disableUploadTimeout:上传文件时是否使用超时机制;

enableLookups:是否启动反查域名机制(取值为 true 或 false),为了提高处理能力,应设置为 false;

bufferSize:定义连接器所提供的输入流中缓存区大小,缺省值为2048个字节;

executor: 使用指定线程池,用于以下配置

maxSpareThreads:最大空闲连接数,如果创建的线程超过这个值,Tomcat 就会关闭不再需要的线程数,缺省值为 50;

maxThreads:最多同时处理的连接数,Tomcat 使每个请求交给线程池处理,这个值表示 线程池可创建的最大的线程数,默认值 150

minSpareThreads:最小空闲线程数,Tomcat 初始化时创建的线程数,该值应该少于maxThreads,缺省值为 4;

压力测试

使用 Apache 的 Bench,在 CentOS 下直接使用 yum -y install httpd-tools 安装 Bench,使用 ab -V 检查是否安装成功,

直接使用命令 ab ‐n 1000 ‐c 100 ‐p data.json ‐T application/json 请求地址, Bench 将会对请求结果生成测试报告,bench 的参数如下 :

参数 含义
-n 在测试会话中所执行的请求个数,默认只执行一次请求
-c 一次产生的请求个数,默认一次一个
-p 包含了需要 POST 的数据文件
-t 测试所进行的最大秒数,默认没有时间限制
-T POST 数据所需要使用的 Content-Type 头信息
-v 设置显示信息的详细程度
-w 以 HTML 表的格式输出结果,默认是白色背景的两列宽度的一张表

生成的测试报告如下 :

在这里插入图片描述

其中的主要指标含义如下 :

指标 含义
Concurrency Level 并发用户数
Time taken for tests 整个测试持续的时间
Complete requests 完成的请求数量
Failed requests 失败的请求数量
Requests per second 每秒钟平均处理的请求数
Time per request 每个线程处理请求平均消耗时间

Requests per second : 吞吐率,服务器并发处理能力的量化描述,单位是 reqs/s,指的是 : 在某个并发用户数下单位时间内处理的请求数。 这个数值表示当前机器的整体性能,值越大越好

Time per request : 用户平均请求等待时间:从用户角度看,完成一个请求所需要的时间 ,该值越小越好

Time per request : across all concurrent requests : 服务器平均请求等待时间:服务器完成一个请求的时间 ,通常等于 上面那个值 / 并发数

JVM 优化

无非就是设置堆内存的大小,调整新生代与老年代的比例,还有新生代晋升到老年代的年龄, 垃圾回收器 …

直接使用jsata -gcutil pid 查看 GC 的执行次数和消耗时间,根据服务器的性能调整参数

或者使用 jmap -heap pid 查看堆内存快照,还可以使用 jconsole 界面查看,

猜你喜欢

转载自blog.csdn.net/Gp_2512212842/article/details/107561789
今日推荐