繁体   English   中英

为什么 WSO2 APIm 在启动时需要 50+ DB 连接?

[英]Why WSO2 APIm needs 50+ DB connections at startup?

在我们的 WSO2 设置中,每当 APIm 出现时,它都会创建接近 50 多个数据库连接到 PostGres 数据库。 在稳定阶段,每个 APIm 实例只有 4 个数据库连接。 我想了解为什么它在启动时需要 50+ 个连接? 是错误还是设计使然?

我们在 kube.netes 设置中运行 WSO2,PostGres 的最大连接限制设置为 100,由于这个问题,APIm 的两个实例无法启动。

在 WSO2 平台中,Tomcat JDBC 池化由于其生产就绪稳定性和高性能而被用作默认池化框架。 调整池属性的目标是维护一个足够大的池来处理峰值负载,而不会不必要地利用资源。 这些池配置通常可以在<PRODUCT_HOME>/repository/conf/datasources/master-datasources.xml文件中针对您的生产服务器进行调整。 这适用于您使用的 APIM 版本低于或等于 2.6 的情况。 如果您使用的是 APIM-3.XX,那么可以在<PRODUCT_HOME>/repository/conf/deployment.toml文件中找到这些配置。

调整连接池时应考虑以下参数:

  • 应用程序的并发要求。
  • 用于运行数据库查询的平均时间。
  • 数据库服务器可以支持的最大连接数。

maxActive 值是可以同时从连接池中分配的最大活动连接数。 默认值为 100。 maximum latency (approximately) = (P / M) * T ,其中,

M = maxActive value
P = Peak concurrency value
T = Time (average) taken to process a query

因此,通过增加 maxActive 值(达到预期的最高并发数),请求在队列中等待释放连接的时间将会减少。 但在增加最大值之前。 Active 值,请咨询数据库管理员,因为它会在高峰时段从单个节点创建最多 maxActive 连接,并且 DBMS 可能无法处理这些活动连接的累积计数。

请注意,此值不应超过数据库允许的最大请求数。

有关此主题的更多详细信息,请参阅官方文档[1, 2]。

[1] https://docs.wso2.com/display/ADMIN44x/Performance+Tuning#PerformanceTuning-JDBCpoolconfiguration

[2] http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

暂无
暂无

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

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