About-Pool-Sizing给出了两个Hikari maximumPoolsize公式。最佳吞吐量的计算公式为:
pool_size =(core_count * 2)+ effective_spindle_count
在我们的情况下,这将导致(8 * 2)+ 4个接近 20 的连接。另一个公式计算最小池大小以避免死锁:
pool_size = MaximumThreads *(max_connections_held_by_single_thread-1)+ 1
在我们的例子中,数字200 *(3-1)+1看起来像这样。如果连接池为 401 ,则无法达到最佳吞吐量。我正在寻找缩小差距的论点。我什么都还没找到,但是也许有一种方法可以计算平均交易时间,或者统计一下需要多少个线程到数据库的多个连接才能将连接池推向最佳吞吐量的方向。任何提示表示赞赏。