使用ab进行并发压测SSL read failed (5) - closing connection错误

本文描述了在进行高并发压力测试时遇到的SSLreadfailed(5)-closingconnection错误,并分享了如何通过更换测试服务器来定位问题根源的过程。此外,还提到了与之类似的socket:Toomanyopenfiles(24)错误,以及在服务端无法找到瓶颈时考虑客户端问题的思路。

最近在进行并发压测,在c参数特别大的时候,测试过程中出现SSL read failed (5) - closing connection错误,研究好久没有找到瓶颈,但在换了一台测试服务器后,这个问题没有出现,所以基本可以确定是测试服务器产生的瓶颈。

与之前遇到的socket: Too many open files (24)错误一样,在服务端找不到瓶颈时,可以考虑一下是不是客户端的问题。


ab测试报告解读:https://blog.themismin.com/posts/e1d2de2b.html

`com.zaxxer.hikari.pool.PoolBase` 报 `springHikariCP` 关闭 `oracle.jdbc.driver.T4CConnection` 连接(`connection has passed maxLifetime`),通常是由于连接超过了最大生命周期而被 HikariCP 连接池关闭。以下是几种可能的解决方案: ### 调整最大生命周期参数 可以通过调整 `maxLifetime` 参数来增加连接的最大存活时间。在 Spring Boot 项目中,可以在 `application.properties` 或 `application.yml` 文件中进行配置。 #### application.properties 示例 ```properties spring.datasource.hikari.max-lifetime=1800000 # 单位为毫秒,这里设置为 30 分钟 ``` #### application.yml 示例 ```yaml spring: datasource: hikari: max-lifetime: 1800000 # 单位为毫秒,这里设置为 30 分钟 ``` ### 调整连接池的其他参数 除了 `maxLifetime`,还可以调整其他相关参数,如 `idleTimeout` 和 `minimumIdle`,以优化连接池的性能。 #### application.properties 示例 ```properties spring.datasource.hikari.idle-timeout=600000 # 空闲连接的最大存活时间,单位为毫秒,这里设置为 10 分钟 spring.datasource.hikari.minimum-idle=5 # 连接池中的最小空闲连接数 ``` #### application.yml 示例 ```yaml spring: datasource: hikari: idle-timeout: 600000 # 空闲连接的最大存活时间,单位为毫秒,这里设置为 10 分钟 minimum-idle: 5 # 连接池中的最小空闲连接数 ``` ### 检查数据库端的连接超时设置 数据库端也可能有连接超时的设置,需要确保数据库端的设置与 HikariCP 的设置相匹配。例如,在 Oracle 数据库中,可以通过修改 `SQLNET.EXPIRE_TIME` 参数来调整连接的超时时间。 ### 监控和分析连接使用情况 使用监控工具(如 Prometheus 和 Grafana)来监控连接池的使用情况,分析连接的创建、销毁和使用频率,找出连接频繁关闭的原因。 ### 代码层面的优化 检查代码中是否存在长时间占用连接的操作,如长时间的事务或复杂的查询。尽量减少连接的占用时间,及时释放连接。 ```java try (Connection connection = dataSource.getConnection()) { // 执行数据库操作 Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM your_table"); // 处理查询结果 while (resultSet.next()) { // 处理数据 } // 关闭资源 resultSet.close(); statement.close(); } catch (SQLException e) { e.printStackTrace(); } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值