最大连接池大小

Vic*_*cky 8 database sql-server oracle database-connection connection-pooling

在阅读有关数据库连接池属性时,我遇到了以下文本:

maximum pool size属性指定池维护的最大可用和借用(使用中)连接数.如果借用了最大连接数,则在将连接返回到池之前,将不会有任何连接可用.此属性允许池中的连接数随着需求的增加而增加.同时,该属性确保池不会增长到exhausting a system's resources,最终影响应用程序性能和可用性的程度.

我的问题是:当上面的文字谈到' exhausting system resources'这是否意味着降低数据库的性能?如果答案是肯定的,那么为什么数据库没有最大的连接限制,它可以承受而不会影响性能,而不是依靠应用程序来指定适当的最大连接限制?数据库中是否有任何内容表明它可以支持多少并发连接(例如Oracle/SQL Server?)

Jus*_*ave 7

通常,关于"耗尽系统资源"的关注适用于应用服务器和数据库服务器.您允许的数据库连接越多,在应用程序服务器上运行的并发会话越多,应用程序服务器VM所需的RAM越多,对应用程序服务器和数据库服务器上的CPU的需求就越大,等等.积压工作的队列变得太大,你可能会发现自己花费更多的时间在CPU和调度任务上交换进程而不是做有用的工作.连接池上的最大大小允许您通过快速错误地处理大量流量或意外性能瓶颈,而不是让用户等待永远不会发生的回复.

通常,数据库可以限制它们支持的连接数.例如,Oracle具有PROCESSESSESSIONS参数,并支持多种连接体系结构(专用服务器和共享服务器),以便您可以权衡性能与资源消耗,从而增加数据库可以支持的并发连接数.

  • +1此外,请考虑以下情况:您有多个应用程序服务器访问同一个数据库(数据库上的最大连接数应至少为所有应用程序服务器总和的最大池大小)或您可能会“限制”应用程序池大小是为了给其他数据库会话更多的优先级。 (2认同)