### [压力测试模板](https://www.isearch.life/article/406) **Published:** 2026-03-02T09:01:03 **Author:** tearell **Excerpt:** XXX系统性能压测报告 压测时间:2022-07-14 压测说明:本次压力测试主要是为了找出系统瓶颈 压测对象 XXX系统 环境 版本信息 类别 说明 服务器 192.168.1.1 数据库 MYSQL-8.0.21 服务容器 TOMCAT # XXX系统性能压测报告 - 压测时间:2022-07-14 - 压测说明:本次压力测试主要是为了找出系统瓶颈 ## 压测对象 XXX系统 ## 环境 ### 版本信息 | 类别 | 说明 | | --- | --- | | 服务器 | 192.168.1.1 | | 数据库 | MYSQL-8.0.21 | | 服务容器 | TOMCAT-9.0.63 | | Redis | 6.2.6 | | RabbitMQ | 3.9.14 | | JDK | openjdk version “1.8.0-262” (build 1.8.0-262-b10) 64-Bit | ### 硬件信息 | 类别 | 说明 | | --- | --- | | 服务器CPU | Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz 12核心24线程 | | 硬盘 | Lenovo SSD SL700,型号LSL70240B0CFF03998,240GB | | 内存 | 64GB,Free=6.6GB,Used=41.7GB | | 交换区 | 15GB | ## 服务调用链路 | 链路 | 是否命中DB | 理论DB次数 | 缓存生效后DB命中次数 | 性能/评估 | | :---: | :---: | :---: | :---: | :---: | | A -> redis | – | – | – | – | | A -> redis -> B -> mysql | yes | 1 | – | – | | A -> C -> B,mysql | yes | 3 | 3 | 根据设备数量指数影响 | | A -> redis -> G | yes | 1 | – | – | | A -> redis -> S | yes | 3 | – | 缓存更新不及时 | | A -> redis -> B | yes | 少数 | 少数 | 较少影响 | ## 调优参数 ### Tomcat | 类别 | 参数 | 值 | | :---: | :---: | :---: | | Tomcat | 等待队列长度 | 2000 | | Tomcat | 最大线程 | 800 | | Tomcat | 最小线程 | 100 | ### Hikari | 类别 | 参数 | 值 | | :---: | :---: | :---: | | Hikari | 连接 | 30s | | Hikari | 超时 | 30s | | Hikari | 线程 | 30 | | Hikari | 连接时长 | 1765000ms | ### Jedis-Pool | 类别 | 参数 | 值 | | :---: | :---: | :---: | | jedis-pool | max-active | 100 | | jedis-pool | max-wait | 5000 | | jedis-pool | max-idle | 5 | | jedis-pool | min-idle | 1 | ### Hystrix | 类别 | 参数 | 值 | | :---: | :---: | :---: | | Hystrix | 策略 | 信号量 | | Hystrix | 最大信号量 | 8000 | ### Feign | 类别 | 参数 | 值 | | :---: | :---: | :---: | | Feign | 懒加载 | 开启 | | Feign | 熔断 | 开启 | | Feign | 压缩算法 | 开启 | | Feign | 默认连接时间 | 30000 | | Feign | 默认超时时间 | 50000 | ### Ribbon | 类别 | 参数 | 值 | | :---: | :---: | :---: | | Ribbon | 最大重试次数 | 0 | | Ribbon | 重试 | 关闭 | | Ribbon | 请求连接时间 | 10000 | | Ribbon | 超时时间 | 10000 | ### 服务内存分配 | 类别 | 参数 | | :---: | :---: | | A | 2GB | | B | 2.5GB | | C | 1.5GB | | G | 256MB | | S | 256MB | ## 压测数据|服务器基准测试 - 本次测试,对服务器进行基准测试,以基础服务的三个接口分别进行衡量 - 测试工程:test-project - Git: [https://gitlab](https://gitlab) - apache-jmeter-5.4.1 - Linux version 3.10.0-957.el7.x86\_64 version 4.8.5 20150623 (Red Hat 4.8.5-36) ### 服务器标准压力测试 | 接口 | 协议 | 方法 | 主机 | 线程数 | 总样本 | 吞吐量 | 响应时间-均值 | 响应时间-最小 | 响应时间-最大 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | /test/get | http | get | 192.168.4.164:8081(nacos+common+kit+mysql+redis+stream) | 500 | 7830236 | 88872.9/s | 5 | 0 | 1011 | | /test/get | http | get | 192.168.4.164:8081(nacos+common+kit+mysql+redis+stream) | 500 | 11676855 | 83440.1/s | 5 | 0 | 1016 | | /test/get | http | get | 192.168.4.164:8081(nacos+common+kit+mysql+redis+stream) | 500 | 93893364 | 84221.5/s | 5 | 0 | 1054 | ### Redis|set + get | 接口 | 协议 | 方法 | 主机 | 线程数 | 总样本 | 吞吐量 | 响应时间-均值 | 响应时间-最小 | 响应时间-最大 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | /test/redisGet | http | post | 192.168.4.164 | 100 | 2784253 | 40935.3/s | 2 | 0 | 942 | | /test/redisGet | http | post | 192.168.4.164 | 500 | 757883 | 10451.1/s | 47 | 0 | 1227 | | /test/redisGet | http | post | 192.168.4.164 | 1000 | 300363 | 3241.0/s | 308 | 1 | 1931 | ### MYSQL写入1次DB | 接口 | 协议 | 方法 | 主机 | 线程数 | 总样本 | 吞吐量 | 响应时间-均值 | 响应时间-最小 | 响应时间-最大 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | /test/dbWrite | http | post | 192.168.4.164 | 100 | 195939 | 3826.3/s | 25 | 4 | 1281 | | /test/dbWrite | http | post | 192.168.4.164 | 500 | 267124 | 3253.9/s | 151 | 5 | 1084 | | /test/dbWrite | http | post | 192.168.4.164 | 1000 | 91968 | 1255.9/s | 788 | 5 | 3145 | ### MYSQL查询1次DB | 接口 | 协议 | 方法 | 主机 | 线程数 | 总样本 | 吞吐量 | 响应时间-均值 | 响应时间-最小 | 响应时间-最大 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | /test/dbGet | http | post | 192.168.4.164 | 100 | 774145 | 12785.9/s | 7 | 0 | 468 | | /test/dbGet | http | post | 192.168.4.164 | 500 | 542922 | 5130.9/s | 97 | 1 | 2966 | | /test/dbGet | http | post | 192.168.4.164 | 1000 | 149840 | 1500.1/s | 657 | 1 | 11066 | ## 压测数据|本次主要对象 - 测试工程:test-project - apache-jmeter-5.4.1 - Linux version 3.10.0-957.el7.x86\_64 version 4.8.5 20150623 (Red Hat 4.8.5-36) ### 登录接口 | 接口 | 协议 | 方法 | 主机 | 线程数 | 总样本 | 吞吐量 | 响应时间-均值 | 响应时间-最小 | 响应时间-最大 | 错误率 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | /token/user/login | http | post | 192.168.4.164 | 100 | 11019 | 80.5/s | 1225 | 394 | 7586 | 0.15% | | /token/user/login | http | post | 192.168.4.164 | 500 | 10241 | 82.1/s | 5857 | 476 | 15020 | 2.79% | | /token/user/login | http | post | 192.168.4.164 | 1000 | 10405 | 85.0/s | 11059 | 299 | 15382 | 44.15% | ### 验证码接口 | 接口 | 协议 | 方法 | 主机 | 线程数 | 总样本 | 吞吐量 | 响应时间-均值 | 响应时间-最小 | 响应时间-最大 | 错误率 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | /token/user/check | http | post | 192.168.4.164 | 100 | 27220 | 242.7/s | 406 | 80 | 1097 | 0% | | /token/user/check | http | post | 192.168.4.164 | 500 | 10241 | 225.8/ | 2180 | 220 | 8964 | 0% | | /token/user/check | http | post | 192.168.4.164 | 1000 | 22882 | 155.9/s | 6231 | 54 | 15364 | 10.91% | ### 建议与优化 #### 影响因子 - Redis: max-idle阈值为120-360较为合理 max-idle数量越大,占用内存越高 max-idle参数增大,吞吐量变高,但过大的配置,吞吐量适得其反 默认服务256M较难支持360个idle及以上配置(360个idle大约500M) - AOP组件 影响约10%左右的吞吐量 - 组件@SpringBootApplication(scanBasePackages = “com.test”) 影响严重,40%-70%不等 - 接口返回值 返回值数据量越大,性能指数下降 - 接口请求参数 较为合理范围内的数据量会有略微的影响 - HTTP与HTTPS 服务链路全采用HTTPS会有一定的性能影响,https的ECC比RSA更快 **Tags:** 教程, 知识, 软件开发 **Categories:** 精选 ---