当前位置: 首页 > 面试题库 >

关于数据库连接池大小的决策的思考

扈韬
2023-03-14
问题内容

我正在基于开源Java的应用程序,即xwiki。Insie
hibernate.cfg.xml我可以看到参数connection.pool_size和statement_cache.siz的值为2(每个)。我的应用程序在某个时间点的最大负载为100个用户。现在,我的问题是什么才是理想的连接池大小。对我来说2号看起来要少得多。如果一次有100个用户连接,则98个用户必须等待释放连接?我是否应该将连接池大小保持为100?

我正在使用Microsoft SQL Server。

除此之外,还有最大连接池大小的限制。它取决于网络服务器(在我的情况下为tomcat)还是数据存储供应商(ms sql服务器)?


问题答案:

如果一个典型的请求花费50%的时间进行计算,而50%的时间用于数据库连接,则您的池中可能只需要50个连接。当然,您的应用程序应尽早释放数据库连接。

通常,对于数据库而言,保持连接并不昂贵(而创建一个新连接则非常昂贵)。保持足够高应该没问题。

你可以设定

  • 最大池大小为100
  • 首选池大小为50
  • 对于池连接,空闲超时为5分钟。

我不熟悉Microsoft SQL Server,但我认为其最大池限制为100

Tomcat可以使用此数量的池大小。



 类似资料:
  • 问题设置基于Web服务(Spring/Java、Tomcat7和MySql),其中每个用户都有自己的数据库,因此每个请求都需要自己的连接。由于所有数据库都是在运行时动态创建的,因此在启动之前静态配置它们不是一个选项。 为了优化数据库连接使用,数据库连接池的实现将是非常好的,对吗? 使用Java/Spring:如何为动态数据库创建连接池?我有点惊讶于这里缺少干净的选择 问题:Tomcat的连接池(以

  • 嘿,我正在使用Glassfish开源v4,我遇到了一个奇怪的问题。 我在管理控制台中定义了到Oracle 11g的JDBC连接池,并设置了: 初始和最小池大小:500 最大游泳池大小:1000 池大小调整数量::750 我已经为这个连接池创建了一个特定的用户。然而,有时当我检查数据库中打开的连接时,我发现有1000多个连接(我看到的最大连接数是1440个) 当发生这种情况时,任何查询尝试都会失败,

  • 本文向大家介绍关于数据库连接池Druid使用说明,包括了关于数据库连接池Druid使用说明的使用技巧和注意事项,需要的朋友参考一下 根据综合性能,可靠性,稳定性,扩展性,易用性等因素替换成最优的数据库连接池。 Druid:druid-1.0.29 数据库 Mysql.5.6.17 替换目标:替换掉C3P0,用druid来替换 替换原因: 1、性能方面 hikariCP>druid>tomcat-j

  • 我们正在尝试将我们的单片应用程序转换为基于微服务的体系结构。我们使用Postgresql作为单一应用程序中的数据库之一,并使用BoneCP进行连接池。 当这个整体被拆分为多个独立的微服务,每个服务都运行在不同的JVM中时,我可以考虑两种连接池选项 BoneCP或任何适合每个微服务的连接池-我的初步研究表明,这是主要选择。可以对每个服务的连接需求进行细粒度控制。但是,不利的一面是,随着服务数量的增加

  • 我正在为员工管理系统创建一个web应用程序,使用ApacheTomcat作为HTTP服务器,Oracle作为数据库,applet用于客户端编程,servlet用于服务器端编程。我还想使用DBCP来管理与数据库的连接。 我希望执行查询的servlet使用客户端为连接输入的用户名和密码。但是到目前为止,我看到在中配置资源时必须设置连接池的用户名和密码。 有没有什么方法可以实现这一点并且仍然使用DBCP

  • 我正在使用hikari cp和spring boot应用程序,它有超过1000个并发用户。我已经设置了最大池大小- 当我使用 它显示的最大值为300,等于池大小。它永远不会增加超过最大池。这是故意的吗?我认为池大小意味着保持连接,以便在将来需要数据库请求时可以重用连接,但在需要时可以进行更多连接。 另外,当我删除max pool配置时,我会立即得到- HikariPool-0-连接不可用,请求在3