gpt4 book ai didi

sql-server - 对于高并发应用程序,tomcat 数据源的理想 maxActive 值是多少?

转载 作者:行者123 更新时间:2023-11-28 23:38:47 25 4
gpt4 key购买 nike

对于高并发应用程序,tomcat 数据源的理想 maxActive 值是多少?特别是在生产环境中。我的应用程序的数据库是 SQL Server。

发送多个请求时,我目前看到以下错误:

java.util.concurrent.ExecutionException: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object 

将 maxActive 设置为 -1 可以解决我的问题,但这是生产环境的理想值吗?

最佳答案

我想,您真的必须进行基准测试。

我们对 Tomcat 进行了负载测试,惊讶地发现吞吐量达到了最大值。 10 个并发连接,当我们最初认为 maxActive 的值应该高得多时。 (免责声明:这是一个内部应用程序,其中的数据库在一个相对较小的盒子上运行。如果您在动力马上运行高并发应用程序,正确的值可能会高得多)。

在 HikariCP 的 wiki 页面上有关于池大小的很好的背景信息,这也应该适用于 Tomcat 附带的 Apache DBCP:

https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing

它基本上是说您应该将并发连接数设置为数据库实例可用 CPU 内核数的两倍。但同样,我会对您的应用进行负载测试以确认该数字。

找到最佳池大小后,考虑增加池的 maxWait 属性以避免您提到的 CannotGetJdbcConnectionException 异常。有关详细信息,请参阅 DBCP 的 JavaDoc:

http://commons.apache.org/proper/commons-dbcp/api-1.4/org/apache/commons/dbcp/BasicDataSource.html#maxWait

关于sql-server - 对于高并发应用程序,tomcat 数据源的理想 maxActive 值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22048094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com