繁体   English   中英

Mule 4 数据库池配置

[英]Mule 4 DB Pooling Configuration

我想使用以下连接器为 mule 使用数据库池:

<db:mysql-config name="dbConfig" host="localhost" port="3306" user="root"
   password="" database="esb" doc:name="MySQL Configuration">
   <db:pooling-profile maxPoolSize="17" minPoolSize="13" acquireIncrement="1"/>
</db:mysql-config>

参考 - https://docs.mulesoft.com/mule-runtime/4.3/tuning-pooling-profiles

我的问题是,假设如果应用程序以 4000 个查询/秒的速度进入数据库,并且每个查询的周转时间为 0.4 秒。 我的问题 maxPoolSize 应该设置什么?

第二个问题,根据 mule 文档, acquireIncrement属性使用是“确定在池耗尽时一次尝试获取多少个连接”。 这是否意味着如果 maxPoolSize 用尽了一个新的连接被创建然后又被丢弃,这是公平的理解吗?

如果一个查询需要 0.4 秒,那么理论上可以使用一个连接每秒执行 2.5 个查询。 因此,对于每秒 4000 个查询,您至少需要 4000/2.5=1600 个连接。 您应该添加更多内容以被峰值、更长的查询等覆盖。这实际上取决于您的应用程序的使用模式。 您应该尝试测量负载测试中的使用情况或跟踪实际使用情况。 为了保险起见,我猜不少于2000。

当当前没有可用的空闲连接时使用acquireIncrement,连接总数不超过maxPoolSize并且新连接的请求到达。 由于您的应用程序预期的使用模式,您可能希望创建 3 个连接而不是仅 1 个。 在任何情况下,总连接数永远不会超过 maxPoolSize。 例如,使用您共享的配置,可能有 14 个活动连接正在使用中,并且新的查询到达。 如果 acquireIncrement 为 2,则池将创建 2 个额外的连接,总共 16 个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM