pgAdmin的连接数设置主要分为两部分:pgAdmin自身服务连接数(管理后台与数据库的连接)和PostgreSQL数据库连接数(pgAdmin管理的数据库实例的最大连接数)。两者需分别配置,以确保整体性能和稳定性。
pgAdmin作为Web管理工具,其自身服务的连接数由连接池大小和工作线程数决定,需修改配置文件调整。
CentOS系统中,pgAdmin的配置文件通常位于/etc/pgadmin/目录下,主配置文件为pgadmin.conf(或config_local.py,用于用户自定义配置)。
使用文本编辑器打开配置文件(需root权限):
sudo vi /etc/pgadmin/pgadmin.conf
在配置文件中添加或修改以下参数,控制pgAdmin与数据库的连接池行为:
# 连接池大小(默认5,建议设置为CPU核心数+1,如4核则设为5)
CONFIG_DATABASE_CONNECTION_POOL_SIZE = 5
# 最大溢出连接数(默认100,当连接池满时,允许临时增加的最大连接数)
CONFIG_DATABASE_CONNECTION_MAX_OVERFLOW = 50
这些参数决定了pgAdmin后台与数据库建立的最大连接数,避免因连接过多导致pgAdmin服务崩溃。
pgAdmin的工作线程数决定了其处理并发请求的能力,需根据服务器CPU核心数调整。
编辑/etc/pgadmin/pgadmin.conf,添加:
# 工作线程数(建议设置为CPU核心数+1,如4核则设为5)
WSGI_DAEMON_PROCESS pgadmin processes=5 threads=10
修改后保存文件。
配置生效后,重启pgAdmin服务使参数生效:
sudo systemctl restart pgadmin4
pgAdmin管理的PostgreSQL数据库实例,其最大连接数需通过修改数据库配置文件调整。
PostgreSQL的主配置文件postgresql.conf通常位于/var/lib/pgsql/data/或/etc/postgresql/<version>/main/目录下(版本号如15、16)。
使用文本编辑器打开配置文件:
sudo vi /var/lib/pgsql/data/postgresql.conf
找到max_connections参数,修改为所需的最大连接数(如100,需根据服务器内存和数据库负载调整):
max_connections = 100
注意:增加max_connections会占用更多内存(每个连接约消耗1-2MB内存),需确保服务器内存充足。
为避免直接使用数据库的最大连接数,建议通过PgBouncer(轻量级连接池工具)管理连接。
sudo yum install pgbouncer
/etc/pgbouncer/pgbouncer.ini),设置连接池参数:[databases]
mydb = host=localhost port=5432 dbname=mydb
[pgbouncer]
listen_addr = localhost
listen_port = 6432
max_client_conn = 200 # PgBouncer允许的最大客户端连接数
default_pool_size = 20 # 每个数据库连接池的大小
sudo systemctl restart pgbouncer
修改postgresql.conf后,重启PostgreSQL服务使配置生效:
sudo systemctl restart postgresql
登录pgAdmin Web界面(http://<服务器IP>:5050),创建或编辑数据库连接,在“Advanced”标签页中查看“Connection Pooling”参数,确认已启用并设置为预期值。
登录PostgreSQL命令行,执行以下SQL查询:
SHOW max_connections;
应返回你设置的值(如100)。
通过PgBouncer连接PostgreSQL,执行:
psql -h localhost -p 6432 -U postgres
SHOW pool_size;
应返回PgBouncer的default_pool_size值(如20)。
sudo命令。max_connections前,需通过ulimit -n查看系统文件描述符限制,若不足需修改/etc/security/limits.conf(如* soft nofile 65536)。通过以上步骤,可在CentOS系统中完成pgAdmin连接数的设置,兼顾pgAdmin自身服务的稳定性和PostgreSQL数据库的性能。