mybatis POOLED 数据源
mybatis POOLED datasource
我正在使用 myBatis POOLED datasource。以下是连接池配置 -
poolMaximumIdleConnections: 5
poolMaximumActiveConnections: 20
我使用 102, 742 request (160 TPS)
访问服务并通过启用 mybatis log-
获得了以下指标
No of Request: 102,742
No of Created connection: 8,841
No of Checked out connection: 93,901
No of Returned connection: 93,911
No of Closed connection: 8,831
No of Claimed overdue connection: 0
No of bad connection: 0
- 如果池大小为 20,为什么会创建 8,841 个连接。它不应该只创建 20 个连接并从池中重用吗?
- 创建了 8,841 个连接,但仅关闭了 8,831 个。这是否意味着 10 个连接仍处于打开状态 - 连接泄漏?
正如您在源代码中看到的那样,"checking out" 一个连接意味着如果可用,则从空闲池中获取它,请参见第 375 行。
如果 none 可用,代码会尝试 "create" 一个(参见第 381 行)
因此,签出意味着 "reuse",这解释了 "checked out" 号码。
当然,没有人能长生不老——即使是旧关系也不会。因此,较旧的连接通常会在闲置一段时间后被终止,这意味着闲置池会缩小,如果需要,则需要新的连接。这导致 "created" 连接数。
不,如果最后有 10 个人还活着,那就完全正常了。如您所见,有 10 个连接甚至还没有关闭,这通常意味着某些东西仍在使用它们。或者它可能是你这边的一个错误,很难说。
我正在使用 myBatis POOLED datasource。以下是连接池配置 -
poolMaximumIdleConnections: 5
poolMaximumActiveConnections: 20
我使用 102, 742 request (160 TPS)
访问服务并通过启用 mybatis log-
No of Request: 102,742
No of Created connection: 8,841
No of Checked out connection: 93,901
No of Returned connection: 93,911
No of Closed connection: 8,831
No of Claimed overdue connection: 0
No of bad connection: 0
- 如果池大小为 20,为什么会创建 8,841 个连接。它不应该只创建 20 个连接并从池中重用吗?
- 创建了 8,841 个连接,但仅关闭了 8,831 个。这是否意味着 10 个连接仍处于打开状态 - 连接泄漏?
正如您在源代码中看到的那样,"checking out" 一个连接意味着如果可用,则从空闲池中获取它,请参见第 375 行。
如果 none 可用,代码会尝试 "create" 一个(参见第 381 行)
因此,签出意味着 "reuse",这解释了 "checked out" 号码。
当然,没有人能长生不老——即使是旧关系也不会。因此,较旧的连接通常会在闲置一段时间后被终止,这意味着闲置池会缩小,如果需要,则需要新的连接。这导致 "created" 连接数。
不,如果最后有 10 个人还活着,那就完全正常了。如您所见,有 10 个连接甚至还没有关闭,这通常意味着某些东西仍在使用它们。或者它可能是你这边的一个错误,很难说。