池中的理想连接数是多少?

问题描述

假设我们有一个客户端想要并行发送 N 个查询一个单节点数据库服务器。服务器有 4 个 cpu 内核和网络设备来接收/发送数据。 这是否意味着没有理由与服务器有 4 个以上的并行连接,因为它只能并行接收 4 个“数据流”?甚至不说磁盘 I/O 等...

说到网络,在物理层面上没有并行,所以我们没有因为这个层面的并行连接而获得收益,对吧?

客户端连接池中的理想连接数是多少?应该考虑什么?也许有一些关于这个主题文章

编辑:如果我们针对延迟而不是吞吐量进行优化

解决方法

我认为您最终需要衡量,这也取决于您的查询的性质,但 HikariCP 有一篇关于连接池大小的好文章:https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing

您应该测试您的应用程序,即模拟预期负载,并围绕此起点尝试不同的池设置:connections = ((core_count * 2) + Effective_spindle_count)