连接过多是否会影响系统性能?
一个 PostgreSQL 服务器实例可能需要同时处理大量的连接请求,比如下面的情况:
- 业务应用中缺少连接池的能力,又不能长期保持过多的空闲连接,采用了一个连接只进行少量查询的短连接模型;
- 业务应用中的模块/微服务比较多,每部分业务维护了各自的连接池,应用端和数据库服务器之间建立了几千上万个连接,同时数据库服务器还需要处理大量的连接请求和断开;
这种情况下,数据库服务器实例能否保持高效的运行?
Redrock Postgres 支持多线程 Postgres 模型,该模型使 UNIX 和 Linux 上的 Postgres 进程能够作为操作系统线程在单独的地址空间中运行,操作系统线程的创建和销毁都是非常高效的,数据库服务器可以同时处理大量连接请求。
在 Windows 上与会话相关的后端进程始终使用线程执行,其余的后台进程作为操作系统进程运行。在 Linux 上默认采用多进程 Postgres 模型,您需要修改配置参数threaded_execution
来启用多线程 Postgres 模型。