决定数据库连接池大小的思考

M S*_*ach 16 java sql-server database-connection connection-pooling flexy-pool

我正在开发基于开源java的应用程序,即xwiki.insie hibernate.cfg.xml我可以看到参数connection.pool_size和statement_cache.siz的值为2(对于每个).我的应用程序将在最多时间内拥有100个用户.现在我的问题是什么应该是理想的连接池大小.对我来说,2号看起来很少.如果一次连接100个用户98用户必须等待grtting连接被释放?在我的情况下,我应该将连接池大小保持为100吗?

我正在使用microsoft sql server.

除此之外,最大连接池大小也有限制.它依赖于webserver(在我的情况下是tomcat)还是数据存储供应商(ms sql server)?

Muh*_*riq 8

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

通常,对数据库来说保持连接并不昂贵(而创建新的连接则相当昂贵).保持足够大的尺寸应该没问题.

你可以设置

  • 最大泳池大小为100
  • 首选泳池大小为50
  • 池连接的空闲超时为5分钟.

我不熟悉microsoft sql server但我认为它的最大池限制为100

使用此数量的池大小,Tomcat将会很好.


Vla*_*cea 8

调整连接池的大小并不是一件容易的事.你基本上需要:

  • 用于调查连接使用情况的指标
  • 当没有可用连接时的故障转移机制

FlexyPool旨在帮助您确定正确的连接池大小.

您可以查看以下文章: