我们目前正在使用Pgbouncer(安装在数据库服务器上)作为数据库连接池。同时,我们使用Npgsql库,它有自己的连接池。我读过一些建议,建议我们在Npgsql中禁用池,并且只使用Pgbouncer。
当我们在Npgsql中禁用连接池时,会出现性能问题。根据我的测试,它需要100毫秒才能连接到保镖。使用PgBouncer的服务器延迟时间小于1ms。
使用5个连接执行5个查询将花费500 is以上,这太过了。
我们用得对吗?那个连接延迟正在扼杀我的性能。
发布于 2016-10-25 12:50:23
我试着在网络中连接不同服务器的保镖,花费了8到22毫秒。我想,这是一个网络问题。
发布于 2020-04-08 20:26:10
没有理由禁用Npgsql中的连接池,除非您有错误或兼容性问题。
PGBouncer通过在不重载Postgres的情况下同时处理更多并发连接(为每个新连接创建一个进程)来帮助实现可伸缩性。这并不意味着创建新连接的速度更快,所以最好重用现有的池。
Npgsql将维护从应用程序到pgbouncer的连接池,而pgb门卫将拥有从其自身到Postgres的连接池。这很好,并将确保两个网络跳是尽可能有效的。
https://stackoverflow.com/questions/40221729
复制相似问题