Chris2018998 / beecp

A small JDBC Connection pool
Apache License 2.0
88 stars 18 forks source link

默认配置下多核处理器中borrowConcurrentSize大于maxActive #19

Closed looly closed 4 years ago

looly commented 4 years ago

在BeeDataSourceConfig中默认的:

borrowConcurrentSize = Runtime.getRuntime().availableProcessors();
maxActive = 10;

此项默认配置有问题,当CPU核心数超过10时,默认配置会检查无效。

我用的锐龙CPU,6核12线程,得到的availableProcessors为12;

Chris2018998 commented 4 years ago

感谢您的Issue,代码已调整为:取最大连接数/2与CPU核心数的最小数

this.borrowConcurrentSize=Math.min(maxActive/2,Runtime.getRuntime().availableProcessors());

这样的默认结果就不会大于最大连接数了. 另外可通过调用方法**setBorrowConcurrentSize()**避开这个问题.

下一个版本将包含进去这个Issue fix

looly commented 4 years ago

OK~~感谢回复。