6.2. 池属性
本节详细介绍了可为最佳数据源或资源适配器性能配置的所选池属性的建议。
- 最小池大小
min-pool-size属性定义连接池的最小大小。默认最小值是零连接。使用零min-pool-size时,会在第一个事务发生时创建连接并放入池中。如果
min-pool-size太小,它会在执行初始数据库命令时出现延迟增加,因为可能需要建立新的连接。如果min-pool-size太大,它会产生与数据源或资源适配器的连接。在不活动期间,连接池将缩小,可能到
min-pool-size值。红帽建议将
min-pool-size设置为允许应用程序按需吞吐量的连接数量。- 最大池大小
max-pool-size属性定义连接池的最大大小。这是一个重要的性能参数,因为它限制了活动连接的数量,因此还限制并发活动的数量。如果
max-pool-size太小,可能会导致请求被不必要阻止。如果max-pool-size太大,则可能会导致 JBoss EAP 环境、数据源或资源适配器使用比它可以处理的资源更多。红帽建议将
max-pool-size设置为至少 15% 大于负载下观察到的可接受MaxUsedCount。这允许某些缓冲区大于预期条件。- 预先填充
pool-prefill属性指定 JBoss EAP 是否预先填充连接池,并在 JBoss EAP 启动时使用最小连接数。默认值为false。当
pool-prefill设为true时,JBoss EAP 会在启动时使用更多资源,但初始事务的延迟会较低。如果您优化了
min-pool-size,红帽建议将pool-prefill设置为true。- 严格最小值
pool-use-strict-min属性指定 JBoss EAP 是否允许池中连接数量低于指定最小值。如果
pool-use-strict-min设为true,JBoss EAP 将不允许连接数量临时低于指定的最小值。默认值为false。虽然指定了最少数量的池连接,但当 JBoss EAP 关闭连接时,如果连接空闲且已达到超时,则暂停可能会导致连接总数在创建新连接并添加到池中前临时低于这个连接。
- 超时
为连接池配置很多超时选项,但对于性能调优是
idle-timeout-minutes。idle-timeout-minutes属性指定在关闭前可以闲置的最大时间(以分钟为单位)。当闲置连接关闭时,池中的连接数将缩减到指定的最小值。超时越长,会使用更多资源,但请求可能会更快地提供。超时越低,会使用较少的资源,但请求可能需要等待创建新连接。